在 Linux 中删除文件

在 Linux 中删除文件

我需要找到所有符合特定条件的文件并将其删除 - 以下是片段:

/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 表示路径它将删除所有目录和文件

相关内容