linux - 如何编写命令来搜索和删除文件,即使在找不到文件的情况下也是如此?

标签 linux bash find amazon rm

我正在使用带有 bash shell 的 Amazon Linux。我想在一行中查找和删除一些 PDF 文件,所以我尝试了

find /home/jboss/.jenkins/jobs/myco/workspace/ebook/ -name '*.pdf' | xargs rm

如果有 PDF 文件,这就可以正常工作。但如果没有,我会得到错误

rm: missing operand

有没有办法把上面的语句写在一行中,即使没有要删除的文件也不会失败?

最佳答案

这可以使用 xargs 的 -r 标志轻松实现。 我还建议使用“特殊字符容忍”版本:

find /home/jboss/.jenkins/jobs/myco/workspace/ebook/ -name '*.pdf' -print0 | xargs -0 -r rm

关于linux - 如何编写命令来搜索和删除文件,即使在找不到文件的情况下也是如此?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36845035/

相关文章:

arrays - 在 MongoDB 的对象数组中查找匹配多个字段的文档

javascript - Find() 函数返回未定义 - Mongoose 和 Node.js

c - 它是如何工作的? pthread_cond_signal() 和 pthread_cond_wait()

linux - 使用 '-sanitizer-coverage-prune-blocks=0' 运行 honggfuzz 错误

bash - 将 RPM 解压到当前目录以外的目录

json - 使用 jq 解析两个列表中存在的键(即使其中一个列表中可能不存在)

bash - 如何缓存当前 session 的 Bash 完成脚本中使用的变量

c# - 如何按单元格值查找列 ID?

linux - 如何在登录提示之前获取引导日志消息中的时间戳?

linux - 将内容添加到文件中间..直到最后才阅读