查找 Linux 上最大的 10 个文件和目录
linuxfile systemunix更新于 2026/1/20 3:07:17
有时,在 Linux 上查找哪些文件或目录占用了所有磁盘空间变得非常重要。同样,我们应该能够找到文件系统上的特定目录位置,例如 /tmp/、/var/ 或 /domestic/。本文将帮助您使用 Unix 和 Linux 命令查找文件系统中最重要或最大的文件或目录。
虽然没有快捷命令可用于查找 Linux/UNIX/BSD 文件系统上最大的文档/目录,但我们将向您展示一种可能性。
通过聚合以下三个命令(使用管道符),可以帮助您轻松查找 Linux 机器上最大的文档列表。
- du 命令:估算文件空间使用情况
- sort 命令:对文本文件行或给定输入数据进行排序
- head 命令:输出文件的第一部分,即显示前 10 个最大的文件
- find 命令:在 Linux 机器上搜索文件
使用以下命令查找最大的Linux 系统上排名前 10 的文件和目录 –
$ sudo du -a /var | sort -n -r | head -n 10
示例输出应如下所示 –
1128132 /var 779176 /var/cache 629292 /var/cache/apt 541020 /var/cache/apt/archives 327212 /var/lib 172180 /var/lib/apt 172024 /var/lib/apt/lists 130084 /var/cache/apt-xapian-index 130080 /var/cache/apt-xapian-index/index.1 87556 /var/lib/dpkg
要查看可读的输出,请使用以下命令 –
$ du -hsx * | sort -rh | head -10
示例输出应如下所示 –
4.4G Desktop 3.8G Downloads 149M en-GB 146M Apache_OpenOffice_4.1.1_Linux_x86-64_install-deb_en-GB.tar.gz 95M scala-2.11.4.deb 20M gawk-4.1.1 4.5M linux-dash 3.9M yii-1.1.13.e9e4a0.tar.gz.1 3.9M yii-1.1.13.e9e4a0.tar.gz
通过以下解释可以更好地理解上述命令 –
- du 命令 -h 选项:以人类可读的格式显示大小(例如,1K、234M、2G)。
- du 命令 -s 选项:仅显示每个参数的总数(摘要)。
- du 命令 -x 选项:跳过不同文件系统上的目录。
- sort 命令 -r 选项:反转比较结果。
- sort 命令 -h 选项:比较人类可读的数字。这仅适用于 GNU 排序特定选项。
- head 命令 -10 或 -n 10 选项:显示前 10 行。
上述命令适用于安装在 Linux 上的 GNU/sort,其他类 Unix 操作系统使用以下命令 –
$find /path/to/dir/ -printf '%s %p
'| sort -nr | head -10 $find . -printf '%s %p
'| sort -nr | head -10
示例输出应如下所示 –
185016320 ./Desktop/gdb-7.9.tar 153300495 ./Downloads/apache-storm-1.0.0.tar.gz 152847886 ./Apache_OpenOffice_4.1.1_Linux_x86-64_install-deb_en-GB.tar.gz 98756608 ./scala-2.11.4.deb 96477184 ./.cache/chromium/Default/Cache/data_3 88088576 ./.cache/google-chrome/Default/Cache/data_3 66586000 ./Downloads/Apache24.zip 61919701 ./Downloads/apache-storm-1.0.0/external/flux/flux-examples-1.0.0.jar 55678503 ./Downloads/apache-storm-1.0.0/examples/storm-starter/storm-starter-topologies-1.0.0.jar
要跳过目录仅显示文件,请使用以下命令
$ find /path/to/search/ -type f -printf '%s %p
'| sort -nr | head -10
或者
$ find /path/to/search/ -type f -iname "*.mp4" -printf '%s %p
'| sort -nr | head -10
使用 Ducks 查找磁盘空间占用大户
使用如下所示的 bash shell 命令
$ alias ducks='du -cks * | sort -rn | head'
使用以下命令获取占用磁盘空间最多的 10 个文件/目录 -
$ ducks
示例输出应如下所示 –
5994400 total 4559508 Desktop 673712 Downloads 151596 en-GB 149268 Apache_OpenOffice_4.1.1_Linux_x86-64_install-deb_en-GB.tar.gz 96444 scala-2.11.4.deb 20024 gawk-4.1.1 4544 linux-dash 3952 yii-1.1.13.e9e4a0.tar.gz.1
恭喜!现在,您已经掌握了"如何在 Linux 上查找最大的 10 个文件和目录"的知识。我们将在下一篇 Linux 文章中进一步学习这些类型的命令。继续阅读!
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

