使用重定向替换文件时要求确认

使用重定向替换文件时要求确认

我是一个粗心的终端驱动程序,害怕意外删除文件,因此使用一些别名,例如alias rm='rm -i'for rmmvcp。我怎样才能获得类似的文件重定向确认行为(例如echo "I'm silly" > very_important_file.txt)。

常见的情况是我通常使用replace( >)而不是append( >>),所以我最终不小心删除了一些中等重要的文件。您有什么建议?

答案1

我认为没有办法获得 的确切行为-i,但我已经noclobber设置了它可以防止覆盖已经存在的文件。

看到这个获取使用示例。

您可以尝试这样的命令(如果您喜欢,请将其包含在启动文件中)

$ set -o noclobber

例子:

$ ls > ls.out
$ set -o noclobber
$ ls > ls.out
bash: ls.out: cannot overwrite existing file
$

更新:

正如 @jsbillings 在下面的有用评论中提到的,要覆盖noclobberin bashone 可以使用>|

由于我主要使用tcshcsh变体),因此覆盖运算符是>!

相关内容