如何在Linux上查找大文件
当需要在 Linux 上整理硬盘时,无论是为了释放空间还是为了变得更有条理,确定哪些文件消耗最多的存储空间会很有帮助。
在本指南中,我们将向您展示如何通过命令行和 GUI 方法识别 Linux 系统上最大的文件。如果您想识别大量目录而不是单个文件,您还可以参阅我们关于按文件夹检查磁盘使用情况的其他指南。
在本教程中您将学习:
如何通过命令行使用
find
查找大文件如何使用 QDirStat 通过 GUI 查找大文件
在 Linux 上查找大文件
如何通过命令行查找大文件
我们可以用来定位大文件的最佳 Linux 命令是 find 命令。 find
具有可用于根据文件大小查找文件的选项。让我们看几个例子。
请注意,在下面的示例中,我们将使用 find
来搜索当前的工作目录,该目录表示为 .
。当然,您可以指定您想要搜索的任何目录,find
将递归搜索您想要的文件。
此命令将查找大小为 100MB 的文件。请注意,我们使用
M
来指定兆字节。$ find . -size 100M
此命令将查找大小大于 5GB 的文件。我们使用
+
来指定“大于”,并使用G
来表示千兆字节。$ find . -size +5G
我们还可以使用
-
符号来搜索小于一定大小的文件。$ find . -size -5M
+
和-
参数可以串联使用来搜索特定大小范围内的文件。例如,让我们查找 2GB 到 5GB 之间的文件。$ find . -size +2G -size -5G
在这种情况下,
find
命令的一个问题是它不会显示所找到文件的文件大小。使用以下命令,只要find
遇到符合我们条件的文件,我们就可以执行ls
命令。这将搜索大于 2GB 的文件,同时向我们显示文件的大小。$ find . -size +2G -exec ls -sh1 {} + 8.2G ./AlmaLinux-8.3-beta-1-x86_64-dvd1.iso 4.5G ./CentOS-7-x86_64-DVD-2003.iso 7.7G ./CentOS-8.2.2004-x86_64-dvd1.iso 8.7G ./OracleLinux-R8-U3-x86_64-dvd.iso 4.1G ./Parrot-security-4.10_amd64.iso 2.6G ./deepin-desktop-community-1002-amd64.iso 3.7G ./kali-linux-2020.3-installer-amd64.iso 2.8G ./kali-linux-2020.4-live-i386.iso 2.4G ./kubuntu-20.04.1-desktop-amd64.iso 2.9G ./manjaro-kde-20.1.2-201019-linux58.iso 4.0G ./openSUSE-Leap-15.2-DVD-x86_64.iso 2.2G ./pop-os_20.04_amd64_intel_13.iso 6.7G ./rhel-8.0-x86_64-dvd.iso 2.6G ./slackware64-14.2-install-dvd.iso 2.6G ./ubuntu-20.04.1-desktop-amd64.iso 2.8G ./ubuntu-20.10-desktop-amd64.iso
正如您所看到的,此输出在识别大文件方面比前面的示例更有帮助。
上一个示例的一个问题是文件没有按大小排序。如果我们有很多返回结果,则很难看出哪些结果最大。这就是
sort
命令发挥作用的地方。请注意排序的-r
选项,这将指示它在顶部列出最大的文件。-h
选项用于人类可读,如果我们在ls
命令中使用相同的-h
选项,则该选项是必需的。$ find . -size +2G -exec ls -sh1 {} + | sort -r -h 8.7G ./OracleLinux-R8-U3-x86_64-dvd.iso 8.2G ./AlmaLinux-8.3-beta-1-x86_64-dvd1.iso 7.7G ./CentOS-8.2.2004-x86_64-dvd1.iso 6.7G ./rhel-8.0-x86_64-dvd.iso 4.5G ./CentOS-7-x86_64-DVD-2003.iso 4.1G ./Parrot-security-4.10_amd64.iso 4.0G ./openSUSE-Leap-15.2-DVD-x86_64.iso 3.7G ./kali-linux-2020.3-installer-amd64.iso 2.9G ./manjaro-kde-20.1.2-201019-linux58.iso 2.8G ./ubuntu-20.10-desktop-amd64.iso 2.8G ./kali-linux-2020.4-live-i386.iso 2.6G ./ubuntu-20.04.1-desktop-amd64.iso 2.6G ./slackware64-14.2-install-dvd.iso 2.6G ./deepin-desktop-community-1002-amd64.iso 2.4G ./kubuntu-20.04.1-desktop-amd64.iso 2.2G ./pop-os_20.04_amd64_intel_13.iso
好的,但是结果很多。如果我们只需要识别前 3 个最大的文件怎么办?在这种情况下,让我们通过管道传输到
head
命令。$ find . -size +5G -exec ls -sh1 {} + | sort -r -h | head -3 8.7G ./OracleLinux-R8-U3-x86_64-dvd.iso 8.2G ./AlmaLinux-8.3-beta-1-x86_64-dvd1.iso 7.7G ./CentOS-8.2.2004-x86_64-dvd1.iso
这里的所有都是它的。使用 find
命令以及可选的 sort
和 head
命令应该可以帮助您找到目录中或整个系统上的所有最大文件。
如何通过 GUI 查找大文件
有时,如果我们使用 GUI 实用程序,更容易可视化磁盘使用情况。其中一个应用程序称为 QDirStat,但默认情况下您的 Linux 发行版上可能不会安装它。使用下面适当的命令通过系统的包管理器安装它。
要在 Ubuntu、Debian 和 Linux Mint 上安装 QDirStat:
$ sudo apt install qdirstat
要在 Fedora 上安装 QDirStat:
$ sudo dnf install qdirstat
要在 Arch Linux 和 Manjaro 上安装 QDirStat:
$ git clone https://aur.archlinux.org/qdirstat.git
$ cd qdirstat
$ makepkg -si
如果 QDirStat 无法从您的发行版存储库中获得,您可能需要手动下载并编译它。
$ git clone https://github.com/shundhammer/qdirstat.git
$ cd qdirstat
$ qmake
$ make
$ sudo make install
安装后,搜索并打开该应用程序。
搜索并打开 QDirStat
当程序打开时,您需要选择要扫描的目录。
选择一个目录来扫描大文件
做出选择后,实用程序将开始扫描文件。一旦完成内容扫描,它将为您提供硬盘空间如何分配到系统上的各个目录及其文件的完整读数。它按大小列出目录和文件,因此您可以快速确定哪些内容占用了最多的磁盘空间。
使用QDirStat,我们可以快速查看哪些目录和文件占用的磁盘空间最多
结束语
在本指南中,我们了解了如何在 Linux 上查找大文件。我们还学习了如何搜索特定大小的文件,以及如何对文件从大到小进行排序。 GUI 和命令行都能够为我们提供存储使用情况的快速摘要,或者系统上各种文件如何使用存储空间的详细分类。