查找文件夹内的目录,如果小于一定大小则删除?

查找文件夹内的目录,如果小于一定大小则删除?

我可以执行什么命令来检查文件夹内的目录,如果目录的总大小小于 30MB,则删除它?我尝试使用该find命令根据大小移动文件,但它没有正常工作。

我正在使用(1mb):

find . -size +102400k -exec mv DIRECTORY
find . -size -102400k -exec mv DIRECTORY

答案1

如果我们谈论的是目录尺寸,我不确定find是否会有帮助。du在某些时候必须要参与其中。

下面是我编写的用于查找 30M 以下目录附近的内容:

du --max-depth 1 | awk -v q='"' '$1 < 30000000 && $2 != "." {sub(/^[0-9\t ]+/, "", $0); print q $0 q}'

然后你可以将其链接到xargs rm -rf但我会测试它非常认真在执行此操作之前。您可能希望移动目录(使用mv),而不是直接删除它们。

答案2

Find 不知道目录的总大小。因此该方法行不通。

您可以找到所有目录,并执行使用 du 的脚本来查看它们是否小于 1MB。

相关内容