如何在Linux/UNIX/BSD上查找最大的前10个文件和目录
时间:2020-01-09 14:16:41 来源:igfitidea点击:
如何在Linux或类似Unix的操作系统上找到最大的顶级文件和目录?
有时有必要知道哪些文件或目录正在占用您的所有磁盘空间。
此外,可能需要在文件系统上的特定目录位置(例如/tmp /或/var /或/home /)中找到它。
此教程将帮助您使用Unix和Linux命令查找文件系统上最大或最大的文件或目录。
如何找出Linux或Unix上排名前10的文件和目录
没有简单的命令可以找到Linux/UNIX/BSD文件系统上最大的文件/目录。
但是,结合以下三个命令(使用管道),您可以轻松地找到最大文件的列表:
在Linux中查找最大目录的步骤
- du命令:估计文件空间使用量。
- sort命令:对文本文件或给定的输入数据行进行排序。
- head命令:输出文件的第一部分,即显示前10个最大的文件。
- find命令:搜索文件。
如何在Linux中查找顶级目录和文件
在shell提示符下执行以下命令以找出前10个最大的文件/目录:
# du -a /var | sort -n -r | head -n 10
输出示例:
1008372 /var 313236 /var/www 253964 /var/log 192544 /var/lib 152628 /var/spool 152508 /var/spool/squid 74688 /var/log/squid 62544 /var/cache
如果您希望获得更多人类可读的输出,请尝试(仅适用于GNU/Linux du版本/用户):
$ 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 选项
:比较人类可读的数字。这仅是GNU排序特定的选项。head 命令-10 OR -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
使用find命令在目录及其子目录中查找最大的文件
执行以下GNU/find命令:
## Warning: only works with GNU find ## find /path/to/dir/ -printf '%s %p\n'| sort -nr | head -10 find . -printf '%s %p\n'| sort -nr | head -10
输出示例:
5700875 ./images/faq/2013/11/iftop-outputs.gif 5459671 ./videos/faq/2013/12/glances/glances.webm 5091119 ./videos/faq/2013/12/glances/glances.ogv 4706278 ./images/faq/2013/09/theitroad.local.linux.wallpapers_r0x1.tar.gz 3911341 ./videos/faq/2013/12/vim-exit/vim-exit.ogv 3640181 ./videos/faq/2013/12/python-subprocess/python-subprocess.webm 3571712 ./images/faq/2013/12/glances-demo-large.gif 3222684 ./videos/faq/2013/12/vim-exit/vim-exit.mp4 3198164 ./videos/faq/2013/12/python-subprocess/python-subprocess.ogv 3056537 ./images/faq/2013/08/debian-as-parent-distribution.png.bak
您可以跳过目录,仅显示文件,执行:
## How to Find Out Top Directories and Files (Disk Space) in Linux Using Find ## find /path/to/search/ -type f -printf '%s %p\n'| sort -nr | head -10
或者
## another option ## find /path/to/search/ -type f -iname "*.mp4" -printf '%s %p\n'| sort -nr | head -10
用鸭子搜寻磁盘空间猪
让我们在以下bash shell别名的帮助下,使用Linux或Unix中的磁盘空间找出顶级目录和文件:
## shell alias ## alias ducks='du -cks * | sort -rn | head' ## deal with special files names ## alias ducks='du -cks -- * | sort -rn | head'
按以下方式运行以获取占用磁盘空间的前10个文件/目录:
$ ducks
在Linux或类Unix系统上查找最大的文件/目录