Wie kann ich mich durch Bash warnen lassen, wenn eine vorhandene Datei überschrieben wird?

34

Ich denke, der Titel ist ziemlich selbsterklärend. Ich möchte nur gewarnt werden, wenn ich versuche, ein existierendes zu überschreiben, während ich cpoder benutze mv. Ich würde mich sehr über Hilfe freuen. :)

sayantankhan
quelle

Antworten:

43

Sie sollten den interaktiven Modus verwenden, der sicherstellt, dass Sie vor dem Überschreiben eine Eingabeaufforderung erhalten.

cp --interactive
mv --interactive

Oder kurz gesagt

cp -i
mv -i

Geben Sie man cpoder man mvin Ihre Befehlszeile ein, um mehr zu erfahren.

don.joey
quelle
2
Also denke ich, dass diese Befehle auch in meinem .bashrc als Aliase verwendet werden. Vielen Dank. Schätze deine Hilfe. :)
sayantankhan
3
Tatsächlich! Sie können alias rm='rm -i'Ihrer .bashrc oder besser Ihren .bash_aliases so etwas wie anhängen . Lesen Sie mehr im Beitrag Wie erstelle ich einen permanenten Bash-Alias?
don.joey
2
Aber ich habe gerade an etwas gedacht. Was ist mit einigen der Skripte, die ich geschrieben habe? Verwenden sie das Alias ​​cp und mv oder das normale?
Sayantankhan
@ Bolt64 Es hängt davon ab, wo Sie Ihre Alias-Definition abgelegt haben, aber normalerweise wird die normale verwendet.
Jan Warchoł
12

Sie möchten auch set -o noclobberIhre .bashrc einfügen. Dies löst einen Fehler aus, wenn Sie versuchen, eine vorhandene Datei durch Ausgabeumleitung zu überschreiben.

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

Sie können erzwingen, dass die Umleitung mit einer speziellen Syntax arbeitet:

$ echo two >| afile
$ cat afile
two

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

Glenn Jackman
quelle