我需要找到所有符合特定条件的文件并将其删除 - 以下是片段:
/var/www/somesite/releases/{many directories}/tmp/attachment_fu
我想找到任何tmp/attachment_fu
目录中的所有文件并删除它们 - 问题是这{many directories}
正在影响我的find
技能(或者可能find
是错误的命令 - 我也尝试过locate
但没有成功)。
答案1
也许我遗漏了something but rm /var/www/somesite/releases/*/tmp/attachment_fu/*
你想要的东西。ls /var/www/somesite/releases/*/tmp/attachment_fu
可以用来查看哪些内容将被删除
答案2
ls /var/www/somesite/releases/*/tmp/attachment_fu | xargs rm -rf
类似这样的事?
是的,或者 rm -rf /var/www/somesite/releases/*/tmp/attachment_fu
;)
答案3
我不完全清楚您想要做什么 - 递归删除与名称 attachment_fu 匹配的文件,但保留目录?
如果是这样,请尝试这个(我添加了回声,以便您可以先试用它)...
find /var/www/somesite/releases -type f -name attachment_fu -exec echo rm -f {} \;
如果没有,请进一步解释:)
或者,您可以使用 -regex 标志来查找“/tmp/”是否重要;类似于......
find /var/www/somesite/releases -type f -regex '.*/tmp/attachment_fu$' -exec echo rm -f {} \;
所有这些都假设您所追求的文件位于文件系统树的不同深度,否则您只需使用 rm(按半径发布)。
答案4
rm -rf 表示路径它将删除所有目录和文件