如何让 bash 在覆盖现有文件时警告我?

如何让 bash 在覆盖现有文件时警告我?

我认为标题非常直观。我只希望当我尝试使用cp或覆盖现有内容时,bash 能够发出警告mv。我真的很感激有人能给我一些帮助。:)

答案1

您应该使用交互模式,确保您获得“覆盖前提示”

cp --interactive
mv --interactive

或者简而言之

cp -i
mv -i

在命令行上输入man cpman mv以了解更多信息。

答案2

您还需要将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

相关内容