我在BASH脚本中使用rm删除许多文件。有时文件不存在,因此会报告许多错误。我不需要这个消息。我已经在手册页中搜索了一个命令来使rm安静,但我找到的唯一选项是-f,从描述“忽略不存在的文件,从不提示”来看,这似乎是正确的选择,但名称似乎不合适,所以我担心它可能会产生意想不到的后果。
-f选项是关闭rm的正确方式吗?为什么不叫-q? 这个选项还有其他功能吗?
我在BASH脚本中使用rm删除许多文件。有时文件不存在,因此会报告许多错误。我不需要这个消息。我已经在手册页中搜索了一个命令来使rm安静,但我找到的唯一选项是-f,从描述“忽略不存在的文件,从不提示”来看,这似乎是正确的选择,但名称似乎不合适,所以我担心它可能会产生意想不到的后果。
-f选项是关闭rm的正确方式吗?为什么不叫-q? 这个选项还有其他功能吗?
当前回答
\rm -f文件永远不会报告未找到。
其他回答
\rm -f文件永远不会报告未找到。
只要rm -f执行“任何其他”,它就会强制(-f是——force的简写)无声删除,否则rm会要求您确认。例如,当试图从您可写的目录中删除不可写的文件时。
-f是正确的标志,但用于测试操作符,而不是rm
[ -f "$THEFILE" ] && rm "$THEFILE"
这确保文件存在并且是一个常规文件(而不是目录、设备节点等)。
是的,-f是最合适的选项。
-f的主要用途是强制删除文件 不使用rm本身删除(作为特殊情况,它“删除” 不存在的文件,从而抑制错误消息)。
您还可以使用重定向错误消息
$ rm file.txt 2> /dev/null
(或您的操作系统的等效程序)。你可以查一下$? 在调用rm查看文件是否被删除后立即执行。