我想获取此命令的结果:
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
)。