如何获取占用较大的文件(前10个文件)

如何获取占用较大的文件(前10个文件)

我们有一个名为“/admin”的父目录。在 admin 目录中,我们有 100 个子目录,例如 "/admin/a" 、 "/admin/b" 、 "/admin/a/Source" ....

我们有一个查找命令如下

 find /admin -type f -exec du {};

 full command: find /admin -type f -exec du {}; 2>/user/arya/file.txt|sort -rn|head -10 > /user/arya/top10_file.txt

该命令需要花费超过 5-6 小时的大量时间才能给出输出..

有什么方法可以让我们编写命令并更快地获得输出并获得占用巨大空间的前 10-20 个文件..?

请建议

答案1

解决您的问题的一种可能的解决方案finddu

find /admin -type f -exec du -a {} + | sort -n -r | head -n 10

finddu都是 Unix 标准工具。

提供{} +告诉同时将命令find应用于多个文件;将一次将该命令应用于每个文件。du{};du

答案2

通过使用printffind,

find /admin -type f -printf '%s %p\n'| sort -nr | head -10
  • %s文件的大小(以字节为单位)。
  • %p文件名。

相关内容