在Linux/UNIX/BSD中找出大小最大的10个文件
时间:2019-11-20 08:53:34 来源:igfitidea点击:
在Linux或类似Unix的操作系统上,如何找出目录中最大的10个文件和目录?
如何找出目录中,哪个文件或者目录占用的空间最大?
在Linux中,找出占用空间最大的文件/目录。
在Linux中找出占用空间最多的10个文件
如何在Linux目录中找出大小最大的10个文件和目录:
# du -a /var | sort -n -r | head -n 10
输出示例:
1444976 /var 1257528 /var/cache 1254900 /var/cache/yum/x86_64/7 1254900 /var/cache/yum/x86_64 1254900 /var/cache/yum 719804 /var/cache/yum/x86_64/7/updates 662692 /var/cache/yum/x86_64/7/updates/packages 401904 /var/cache/yum/x86_64/7/base 287720 /var/cache/yum/x86_64/7/base/packages 136368 /var/lib
可以根据需要显示不同的输出格式或者进行排序:
$ cd /path/to/some/where $ du -hsx * | sort -rh | head -10 $ du -hsx -- * | sort -rh | head -10
其中
- du -h 选项:指定人类可读单位(例如1K,234M,2G)。
- du -s 选项:只显示每个参数的总数
- du -x 选项:跳过不同文件系统上的目录。
- sort -r 选项:倒序排序
- sort -h 选项:以数值进行排序
- head -10 或者 -n 10选项:显示前10行。
上面的命令只能在GNU/sort中使用。
其他类似Unix的操作系统使用下面的方法:
for i in G M K do du -ah | grep [0-9]$i | sort -nr -k 1 done | head -n 11
输出示例:
179M . 84M ./uploads 57M ./images 51M ./images/faq 49M ./images/faq/2013 48M ./uploads/cms 37M ./videos/faq/2013/12 37M ./videos/faq/2013 37M ./videos/faq 37M ./videos 36M ./uploads/faq
在Solaris中查找最大的子目录
for dirname in `du -s /home/* | sort -rn | cut -f2- | head -5` do echo "" echo larger folder: $dirname done exit 0
使用find命令查找最大的文件
执行以下GNU/find命令:
find /path/to/dir/ -printf '%s %p\n'| sort -nr | head -10 find . -printf '%s %p\n'| sort -nr | head -10
输出示例:
73334315 ./git/curl/.git/objects/pack/pack-3061b6415686fdb71de5d7270803d7861964af9d.pack 70533868 ./git/gcc-9.3.0.tar.xz 49090971 ./git/cups/.git/objects/pack/pack-3604587bee5fe321651adbc20f4c4c60d25a9e19.pack 44245968 ./git/binutils-2.35.tar.gz 37101590 ./git/cryptsetup/.git/objects/pack/pack-a58821f7041faa86506f2eceabf349c9ac4b9ff2.pack 33851842 ./git/bash/.git/objects/pack/pack-2a86cd66c81e260f8ae610c031ba76b639070d9f.pack 33106086 ./man/man-to-github-pages/.git/objects/pack/pack-0dea6228f4d7cc5ed4f305a1817b9f40e6eb4a14.pack 28753920 ./tools/heirloom-doctools.tar 24248320 ./man/man-pages-5.08/manhtml.tar 20979436 ./git/gdb-9.2.tar.xz
使用-type f选项,只查找文件:
find /path/to/search/ -type f -printf '%s %p\n'| sort -nr | head -10
或者
find /path/to/search/ -type f -iname "*.tar" -printf '%s %p\n'| sort -nr | head -10
使用du命令查看各个子目录的大小
在Linux中,我们还可以使用du查看文件系统占用的空间大小
du -cks * | sort -rn | head du -cks -- * | sort -rn | head
输出示例
1225012 total 884044 git 243576 man 94348 tools 2236 linux-man-pages 452 rpmbuild 344 man-1.6-13.g.el7.src.rpm 4 sample.txt 4 initial-setup-ks.cfg 4 anaconda-ks.cfg