在终端中查找并列出特定大小下的所有目录?(Mac/Linux)



我正在尝试列出音乐库中所有小于5mb的目录。我在终端中尝试了以下命令:

find /volume1/Music Library/ -type d -size -5M -print;

但它只列出了数千个目录,当然我检查过的少数目录要大得多。为了得到这个命令,我修改了另一个我经常用来查找空目录的命令:

find /volume1/Music Library/ -type d -empty -print;

对于这一个,在我验证它是正确的之后,我将-print;替换为-delete,并正在寻找基于目录大小的类似体验。我不希望自动删除(希望(明显的原因。

我在终端中通过SSH到我的Synology NAS来做这件事,该NAS运行基于Linux的操作系统。

根据find命令的手册,-size参数仅适用于文件:

-size n[cwbkMG]
File uses n units of space.  The following suffixes can be used:

使用findduawk:

find /volume1/Music Library/ -type d -exec du -ms {} ;| awk '$1 < 5'|cut -f 2-

这将列出总内容小于5M的所有目录。

编辑:

如果您想删除预期的目录,可以在命令行末尾添加| xargs -d \n rm -rf

find /volume1/Music Library/ -type d -exec du -ms {} ;| awk '$1 < 5'|cut -f 2- | xargs -d \n rm -rf

最新更新