non*_*one 5 bash io-redirection alias
我是一个粗心的终端驱动程序,害怕不小心删除文件,因此使用了一些别名,例如alias rm='rm -i'for rm, mv, cp。我怎样才能获得类似的文件重定向确认行为(例如echo "I'm silly" > very_important_file.txt)。
常见的情况是我通常使用 replace ( >) 而不是 append ( >>),所以我最终不小心删除了一些中间重要的文件。你有什么建议?
我认为没有办法获得 的确切行为-i,但我已经noclobber设置了防止覆盖现有文件的方法。
有关使用示例,请参阅此页面。
您可以尝试这样的命令(如果您喜欢,请将其包含在您的启动文件中)
$ set -o noclobber
Run Code Online (Sandbox Code Playgroud)
例子:
$ ls > ls.out
$ set -o noclobber
$ ls > ls.out
bash: ls.out: cannot overwrite existing file
$
Run Code Online (Sandbox Code Playgroud)
更新:
作为@jsbillings下面有帮助的评论提到,要覆盖noclobber在bash一个可以使用>|
由于我主要使用tcsh(csh变体),因此覆盖运算符是>!
| 归档时间: |
|
| 查看次数: |
223 次 |
| 最近记录: |