我是一个粗心的终端驱动程序,害怕意外删除文件,因此使用一些别名,例如alias rm='rm -i'
for rm
、mv
、cp
。我怎样才能获得类似的文件重定向确认行为(例如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 在下面的有用评论中提到的,要覆盖noclobber
in bash
one 可以使用>|
由于我主要使用tcsh
(csh
变体),因此覆盖运算符是>!