如果您的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
现在你知道如果你遇到磁盘满了,如何找到最大的文件和文件夹了。