我在BASH脚本中使用rm删除许多文件。有时文件不存在,因此会报告许多错误。我不需要这个消息。我已经在手册页中搜索了一个命令来使rm安静,但我找到的唯一选项是-f,从描述中,“忽略不存在的文件,从不提示”,似乎是正确的选择,但名称似乎不适合,所以我担心它可能会产生意想不到的后果。
rm
-f
-q
是的,-f是最合适的选项。
只要rm -f执行“任何其他”,它就会强制(-f是--force的简称)在rm会要求您确认的情况下静默删除。例如,当试图从您可写的目录中删除不可写的文件时。
rm -f
--force
您还可以使用重定向错误消息
$ rm file.txt 2> /dev/null
(或您的操作系统的等效)。你可以检查$?的值 在调用rm后立即查看文件是否实际被删除
$?
\rm -f file将永远不会报告未找到。
\rm -f file
-f是正确的标志,但用于测试操作符,而不是rm
[ -f "$THEFILE" ] && rm "$THEFILE"
这确保文件存在并且是一个常规文件(而不是目录、设备节点等)。
我对cshell也有同样的问题。唯一的解决方案是在脚本中创建一个匹配“rm”之前的模式的虚拟文件。