ฉันจะทุบตีเตือนฉันได้อย่างไรเมื่อเขียนทับไฟล์ที่มีอยู่


34

ฉันคิดว่าชื่อนั้นค่อนข้างอธิบายตนเองได้ ทั้งหมดที่ฉันต้องการคือทุบตีเพื่อเตือนฉันเมื่อฉันพยายามที่จะเขียนทับที่มีอยู่ในขณะที่ใช้หรือcp mvฉันขอขอบคุณความช่วยเหลือ :)

คำตอบ:


43

คุณควรใช้โหมดอินเทอร์แอคทีฟซึ่งทำให้แน่ใจว่าคุณได้รับ 'พรอมต์ก่อนเขียนทับ'

cp --interactive
mv --interactive

หรือในระยะสั้น

cp -i
mv -i

พิมพ์man cpหรือman mvบนบรรทัดคำสั่งของคุณเพื่อหาข้อมูลเพิ่มเติม


2
ดังนั้นฉันเดาว่าคำสั่งเหล่านั้นจะเป็นนามแฝงใน. bashrc ของฉันเช่นกัน ขอบคุณมาก. ขอบคุณที่คุณช่วย. :)
sayantankhan

3
แน่นอน! คุณสามารถเพิ่มสิ่งต่อalias rm='rm -i'ไปนี้ลงใน. bashrc ของคุณหรือดีกว่า. bash_aliases ของคุณ อ่านเพิ่มเติมในโพสต์ฉันจะสร้างนามแฝง Bash ถาวรได้อย่างไร
don.joey

2
แต่ฉันแค่คิดถึงบางสิ่ง ฉันได้เขียนสคริปต์บางอย่างเกี่ยวกับ พวกเขาจะใช้ cp และ mv ที่ใช้นามแฝงหรืออันที่ปกติหรือไม่
sayantankhan

@ Bolt64 มันขึ้นอยู่กับว่าคุณใส่คำจำกัดความนามแฝงไว้ที่ใด แต่โดยปกติแล้วมันจะใช้คำสั่งปกติ
ม.ค. Warchoł

12

คุณต้องการที่จะใส่set -o noclobberใน. bashrc ของคุณด้วย สิ่งนี้จะทำให้เกิดข้อผิดพลาดหากคุณพยายามเขียนทับไฟล์ที่มีอยู่โดยการเปลี่ยนเส้นทางของเอาต์พุต

$ set -o noclobber
$ echo one > afile
$ echo two > afile
bash: afile: cannot overwrite existing file

คุณสามารถบังคับให้การเปลี่ยนเส้นทางทำงานกับไวยากรณ์พิเศษได้:

$ echo two >| afile
$ cat afile
two

http://www.gnu.org/software/bash/manual/bashref.html#Redirecting-Output

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.