Как заставить bash предупредить меня при перезаписи существующего файла?


34

Я думаю, что название довольно очевидно. Все, что я хочу, это bash, чтобы предупредить меня всякий раз, когда я пытаюсь перезаписать существующее при использовании cpили mv. Буду очень признателен за помощь. :)

Ответы:


43

Вы должны использовать интерактивный режим, который гарантирует, что вы получите «запрос перед перезаписью»

cp --interactive
mv --interactive

Или короче

cp -i
mv -i

Введите man cpили man mvв командной строке, чтобы узнать больше.


2
Так что я думаю, что эти команды также используются как псевдонимы в моем .bashrc. Большое спасибо. Ценю твою помощь. :)
Саянтанхан

3
Верно! Вы можете добавить что-то вроде alias rm='rm -i'вашего .bashrc или лучше .bash_aliases. Подробнее читайте в посте Как создать постоянный псевдоним Bash?
don.joey

2
Но я просто подумал о чем-то. Как насчет некоторых из сценариев, которые я написал. Будут ли они использовать псевдоним cp и mv или обычный?
Саянтанхан

@ Bolt64 Это зависит от того, где вы поместили определение псевдонима, но обычно оно будет использовать нормальное.
Ян Вархол

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.