Як змусити bash попереджати мене при перезаписі наявного файлу?


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 або звичайні?
Саянтанкхан

@ Bolt64 Це залежить від того, куди ви поставите своє псевдонім визначення, але зазвичай воно використовуватиме звичайне.
Jan 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.