Come faccio ad avvisare bash quando sovrascrivo un file esistente?


34

Penso che il titolo sia piuttosto esplicativo. Tutto quello che voglio è bash di avvisarmi ogni volta che provo a sovrascrivere un esistente mentre utilizzo cpo mv. Gradirei davvero un aiuto. :)

Risposte:


43

Dovresti usare la modalità interattiva che ti assicura di ricevere un 'prompt prima di sovrascrivere'

cp --interactive
mv --interactive

O in breve

cp -i
mv -i

Digita man cpo man mvsulla riga di comando per saperne di più.


2
Quindi immagino che quelli ai comandi vadano come alias anche nel mio .bashrc. Molte grazie. Apprezzo il tuo aiuto. :)
sayantankhan,

3
Infatti! Puoi aggiungere qualcosa di simile alias rm='rm -i'al tuo .bashrc o meglio ai tuoi .bash_aliases. Maggiori informazioni nel post Come posso creare un alias permanente di Bash?
don.joey,

2
Ma ho appena pensato a qualcosa. Che dire di alcuni degli script che ho scritto. Useranno l'alias cp e mv o quello normale?
sayantankhan,

@ Bolt64 Dipende da dove metti la tua definizione di alias, ma di solito userà quella normale.
Jan Warchoł,

12

Vuoi anche inserire il set -o noclobbertuo .bashrc. Ciò genererà un errore se si tenta di sovrascrivere un file esistente mediante il reindirizzamento dell'output.

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

È possibile forzare il reindirizzamento per funzionare con una sintassi speciale:

$ echo two >| afile
$ cat afile
two

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.