假设text当前目录中有一个名为(不管它包含什么内容)的文本文件,当我运行命令时(在 Ubuntu 14.04,bash 版本 4.3.11 中):
nocommand > text # make sure noommand doesn't exists in your system
Run Code Online (Sandbox Code Playgroud)
它报告“找不到命令”错误并删除文本文件!我只是想知道如果命令不存在我是否可以避免文件的破坏。我尝试这个命令set -o noclobber,但如果我运行以下命令,也会出现同样的问题:
nocommand >| text # make sure noommand doesn't exists in your system
Run Code Online (Sandbox Code Playgroud)
bash 似乎在寻找要运行的特定命令之前重定向输出。谁能给我一些如何避免这种情况的建议?
如果你这样做:
set -o noclobber
Run Code Online (Sandbox Code Playgroud)
然后
invalidcmd > myfile
Run Code Online (Sandbox Code Playgroud)
如果myfile当前路径中存在,那么您将得到:
-bash: myfile: cannot overwrite existing file
Run Code Online (Sandbox Code Playgroud)