上一篇 下一篇 分享链接 返回 返回顶部

如何查找Linux服务器中占用硬盘最多文件目录

发布人:Minchunlin 发布时间:2021-02-08 10:55 阅读量:1172

如果您的Linux服务器中硬盘快满了又无法扩容,此时应该怎么办?我们应该找到占用最多的文件和文件夹目录,然后分析是否有用然后删除。在这个Linux快速技巧中,我们将向你展示如何找到大文件和目录。

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

du命令允许你从命令行检查磁盘使用情况。单独使用时,它将递归地检查每个子目录并显示其大小。然而,如果你将它与其他一些命令搭配使用,你可以缩小搜索范围。在下面的例子中,我们使用 du -h 命令以人类可读的 fromat 列出目录。然后我们用管道将du的输出进行排序。这允许我们以相反的顺序进行人可读的数字排序-hr。这将把最大的目录放在列表的顶部。

$ du -h | sort -hr | head -10

缩小搜索范围的一个好方法是将du命令限制为只搜索顶级目录(最大目录深度)。这可以让你发现哪个顶层目录占用的空间最大。然后你就可以把目录改成它,再进行一次运行。这里,我们用-d 1选项告诉du命令只深入一个目录。

$ du -d 1 | sort -n -r

现在我们知道Music目录下存储了最多的数据,我们可以cd进入该目录,然后再次运行du,看看哪个子目录使用的空间最大。我们可以cd到该目录中,然后再次运行du,看看哪个子目录使用的空间最大。

$ du -d 1 | sort -n -r

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

查找最大的文件和目录

默认情况下,du 命令只显示目录。如果使用-a (all)选项,除了目录之外,它还会显示文件。

$ du -ah | sort -hr | head -5

如你所见,它现在既报告文件,也报告目录。

只查找最大的文件

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

$ find -type f -exec du -ah {} + | sort -hr | head -5

现在你知道如果你遇到磁盘满了,如何找到最大的文件和文件夹了。

目录结构
全文