查找Linux中占用磁盘空间最多的文件和目录

对于Linux系统来说,磁盘全部被占满的文件系统可能带来灾难。有时候,即使您知道磁盘已经满了,仍然很难找到问题目录。在这个Linux快速提示中,我们将向您展示如何查找大型文件和目录。

查找使用最多磁盘空间的目录


du命令允许您从命令行检查磁盘使用情况。单独使用时,它将递归遍历每个子目录并显示其大小。但是,如果您将它与其他一些命令配对,您可以缩小搜索范围。在下面的示例中,我们使用’ du -h ‘命令列出人类可读格式中的目录使用情况。然后我们通过管道将’ du ‘输出到’ sort ‘。这允许我们按照“-hr”的倒序执行人类可读的数字排序。这将把最大的目录放在列表的顶部。

[mcherisi@putorius Desktop]$ du -h | sort -hr | head -10
9.4G    .
4.9G    ./Music
4.5G    ./ISO_Files
3.6G    ./Music/Pink Floyd
1.1G    ./Music/AC-DC
362M    ./Music/Pink Floyd/2001 - Echoes - The Best of Pink Floyd
344M    ./Music/Pink Floyd/1995 - Pulse
252M    ./Music/10,000 Maniacs
242M    ./Music/Pink Floyd/1988 - Delicate Sound Of Thunder
208M    ./Music/Pink Floyd/1973 - Dark Side Of The Moon

缩小搜索范围的一种好方法是将du命令限制在最上面的目录(最大目录深度)。这允许您发现哪个顶级目录占用的空间最多。然后您可以将目录更改为该目录并执行另一次运行。在这里,我们告诉du命令使用’ -d 1 ‘选项只深入一个目录。

[mcherisi@putorius Desktop]$ du -d 1 | sort -n -r
9832936 .
5133352 ./Music
4688216 ./ISO_Files
11336   ./Videos
20  ./Pictures
8   ./Documents

现在我们知道音乐目录存储的数据最多。我们可以将’cd 该目录并再次运行’ du ‘,以查看哪个子目录使用的空间最多。

[mcherisi@putorius Music]$ du -d 1 | sort -n -r
5133352 .
3726032 ./Pink Floyd
1149744 ./AC-DC
257572  ./10,000 Maniacs

当您有大量的目录时,这种方法特别有用。

找到最大的文件和目录


默认情况下,du命令只显示目录。通过“-a”(all)选项,它将显示目录之外的文件。

[mcherisi@putorius Desktop]$ du -ah | sort -hr | head -5
9.4G    .
4.9G    ./Music
4.5G    ./ISO_Files
3.6G    ./Music/Pink Floyd
2.6G    ./ISO_Files/kali-linux-2019.4-amd64.iso

只查找最大文件


如果我们只搜索文件,那么du命令不是这个任务的合适工具。对于这个任务,我们必须使用find命令。在下面的例子中,我们使用find . -type f。这指示find只在当前目录中查找文件。然后,我们通过输出’ -exec ‘来运行’ du -a ‘命令。

[mcherisi@putorius Desktop]$ find -type f -exec du -ah {} + | sort -hr | head -5
2.6G    ./ISO_Files/kali-linux-2019.4-amd64.iso
1.9G    ./ISO_Files/linuxmint-19.3-cinnamon-64bit.iso
55M ./Music/Pink Floyd/1970 - Atom Heart Mother/01 - Atom Heart Mother.mp3
54M ./Music/Pink Floyd/1971 - Meddle/06 - Echoes.mp3
48M ./Music/Pink Floyd/Star Profile-audio documentary/Star Profile-01-Audio Documentary.mp3

结论


通过du命令可以快速到磁盘使用量比较大的文件或者目录,根据文件内容的重要性进行清理,保持服务器磁盘的健康。

Nginx配置Basic Auth登录认证
shell脚本是什么
标签:
ajax-loader