Bagaimana cara saya membuat bash memperingatkan saya ketika menimpa file yang ada?

34

Saya pikir judulnya cukup jelas. Yang saya inginkan adalah bash untuk memperingatkan saya setiap kali saya mencoba untuk menimpa yang sudah ada saat menggunakan cpatau mv. Saya sangat menghargai bantuan. :)

sayantankhan
sumber

Jawaban:

43

Anda harus menggunakan mode interaktif yang memastikan Anda mendapatkan 'prompt sebelum menimpa'

cp --interactive
mv --interactive

Atau singkatnya

cp -i
mv -i

Ketik man cpatau man mvpada baris perintah Anda untuk mencari tahu lebih lanjut.

jangan
sumber
2
Jadi saya kira itu perintah pergi sebagai alias di .bashrc saya juga. Terima kasih banyak. Hargai bantuan Anda. :)
sayantankhan
3
Memang! Anda dapat menambahkan sesuatu seperti alias rm='rm -i'.bashrc Anda atau lebih baik .bash_aliases Anda. Baca selengkapnya di pos Bagaimana cara membuat alias Bash permanen?
don.joey
2
Tapi saya hanya memikirkan sesuatu. Bagaimana dengan beberapa skrip yang saya tulis. Apakah mereka akan menggunakan cp dan mv alias atau yang normal?
sayantankhan
@ Bolt64 Tergantung pada tempat Anda meletakkan definisi alias Anda, tetapi biasanya itu akan menggunakan yang normal.
Jan Warchoł
12

Anda juga ingin memasukkan set -o noclobber.bashrc Anda. Ini akan menimbulkan kesalahan jika Anda mencoba menimpa file yang ada dengan pengalihan output.

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

Anda dapat memaksa pengalihan untuk bekerja dengan sintaks khusus:

$ echo two >| afile
$ cat afile
two

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

glenn jackman
sumber