获取 find 输出以便稍后删除文件

获取 find 输出以便稍后删除文件

我想获取此命令的结果:

find . -type f -size +200M -exec ls -lh {} \;

将内容存储到某种形式的变量中,然后删除找到的文件。

我怎样才能做到这一点?

答案1

您不需要将结果存储find在变量中就可以删除文件(除非您有一些未提及的特定要求),因为提供了可以为您执行此操作的find特殊参数:-delete

find . -type f -size +200M -print -delete

作为ls不建议解析命令的输出

如果您确实想解析返回的文件find,您需要执行以下操作:

find . -type f -size +200M -print0 | xargs -0 rm -v

因为你不能用空字符保存 shell 变量,而且你也不想在空格处破坏脚本(这可能会导致巨型虫子),解决方法可以是将列表存储在临时文件中或序列化数据(例如base64)。

相关内容