如何防止rm报告没有find文件?
我在BASH脚本中使用rm
来删除许多文件。 有时文件不存在,所以报告很多错误。 我不需要这个消息。 我已经在man页面search了一个让rm
安静的命令,但是我发现的唯一的select是-f
,从描述中,“忽略不存在的文件,永远不会提示”似乎是正确的select,但是名字没有似乎适合,所以我担心它可能会有意想不到的后果。
-
-f
选项是否正确地沉默rm
? 为什么不叫它-q
? - 这个选项是否还有其他的作用?
-f
的主要用途是强制删除不会被rm
自身删除的文件(特殊情况下,它会“删除”不存在的文件,从而抑制错误信息)。
您也可以使用redirect错误消息
$ rm file.txt 2> /dev/null
(或者你的操作系统的等价物)。 你可以检查$?
的价值$?
在调用rm
之后立即查看文件是否被实际删除。
是的, -f
是最合适的select。
-f是正确的标志,但对于testing操作员而言,不是rm
[ -f "$THEFILE" ] && rm "$THEFILE"
这确保文件存在,并且是一个普通的文件(不是目录,设备节点等)
\rm -f file
将永远不会报告未find。
至于rm -f
做“别的事情”,在rm
否则会要求你确认的情况下,它强制( -f
是--force
简写)无声移除。 例如,试图从您可写入的目录中删除不可由您写入的文件。
我有相同的问题cshell。 我唯一的解决scheme是创build一个虚拟文件,在我的脚本“rm”之前匹配模式。