/my-directory
如果不存在,是否有一种简单的方法可以让它默默地不执行任何操作?
find /my-directory -type f -mtime +14 -print0 | xargs -r0 rm
版本:
- 查找:GNU findutils 4.5.10
- bash 4.2.53
答案1
您可以放弃find
with的错误报告2>/dev/null
,或者您可以完全避免运行该命令:
test -d /my-directory && find /my-directory -type f -mtime +14 -print0 | xargs -r0 rm
作为轻微的优化和更清晰的代码,某些版本(包括您的版本)可以直接为您find
执行:rm
test -d /my/directory && find /my-directory -type f -mtime +14 -delete
答案2
您可以使用,
find /my-directory -type f -mtime +14 -print0 2>/dev/null | xargs -r0 rm
说明:
2> /dev/null
意味着将 stderr 重定向到/dev/null
.
/dev/null
是空设备,它接受您想要的任何输入并将其丢弃。它可用于抑制任何输出。
答案3
print0
在这里没用xargs -r 0
,find
有内置的功能:
[ -d /my-directory ] && find /my-directory -type f -mtime +14 -exec rm {} +
或者,当您使用 GNU find 时,@terdon 建议使用此变体:
[ -d /my-directory ] && find /my-directory -type f -mtime +14 -delete