在Linux中查找大文件

随着时间的流逝,您的磁盘驱动器可能会堆满很多不必要的文件,从而占用大量磁盘空间。 通常,由于日志或备份文件较大,Linux系统会用完磁盘空间。

本教程说明了如何使用Linux查找最大的文件和目录。 finddu 命令。

使用查找大文件 find 命令#

find 命令是Linux系统管理员中最强大的工具之一。 它使您可以根据不同的条件(包括文件大小)搜索文件和目录。

例如,要在当前工作目录中搜索大小大于100 MB的文件,可以运行以下命令:

sudo find . -xdev -type f -size +100M

更换 . 以及您要搜索最大文件的目录的路径。

输出将显示文件列表,没有任何其他信息。

/var/lib/libvirt/images/centos-7-desktop_default.img
/var/lib/libvirt/images/bionic64_default.img
/var/lib/libvirt/images/win10.qcow2
/var/lib/libvirt/images/debian-9_default.img
/var/lib/libvirt/images/ubuntu-18-04-desktop_default.img
/var/lib/libvirt/images/centos-7_default.img

find 命令也可以与其他工具结合使用,例如 ls 要么 sort 对这些文件执行操作。

在下面的示例中,我们传递了 find 命令 ls 这将打印每个找到的文件的大小,然后将输出通过管道传输到 sort 命令根据文件大小的第5列对其进行排序。

find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r

输出将如下所示:

-rw-------  1 root   root 40967M Jan  5 14:12 /var/lib/libvirt/images/win10.qcow2
-rw-------  1 root   root  3725M Jan  7 22:12 /var/lib/libvirt/images/debian-9_default.img
-rw-------  1 root   root  1524M Dec 30 07:46 /var/lib/libvirt/images/centos-7-desktop_default.img
-rw-------  1 root   root   999M Jan  5 14:43 /var/lib/libvirt/images/ubuntu-18-04-desktop_default.img
-rw-------  1 root   root   562M Dec 31 07:38 /var/lib/libvirt/images/centos-7_default.img
-rw-------  1 root   root   378M Jan  7 22:26 /var/lib/libvirt/images/bionic64_default.img

如果输出中包含很多信息行,则可以使用 head 命令仅打印前10行:

find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r | head

让我们分解一下命令:

  • find . -xdev -type f -size +100M -print -仅搜索文件(-type f)在当前工作目录(.),大于100MB(-size +100M),请勿降级其他文件系统上的目录(-xdev),然后在标准输出中打印完整文件名,然后在新行(-print)。
  • xargs ls -lh -的输出 find 命令通过管道传递到 xargs 执行 ls -lh 该命令将以长列表可读的格式打印输出。
  • sort -k5,5 -h -r -根据第5列对行进行排序(-k5,5),以易于理解的格式比较这些值(-h)并反转结果(-r)。
  • head :仅输出管道输出的前10行。

find 命令带有许多强大的选项。 例如,您可以搜索x天之前的大型文件,具有特定扩展名的大型文件或属于特定用户的大型文件。

使用来查找大文件和目录 du 命令#

du 该命令用于估计文件空间使用情况,对于查找消耗大量磁盘空间的目录和文件特别有用。

以下命令将打印最大的文件和目录:

du -ahx . | sort -rh | head -5

第一列包括文件的大小,第二列包括文件名:

55G	.
24G	./.vagrant.d/boxes
24G	./.vagrant.d
13G	./Projects
5.2G	./.minikube

命令说明:

  • du -ahx . :估计当前工作目录中的磁盘空间使用情况(.),同时计算文件和目录(a),以人类可读的格式打印尺寸(h),并跳过其他文件系统上的目录(x)。
  • sort -rh :通过比较人类可读格式的值对行进行排序(-h)并反转结果(-r)。
  • head -5 :仅输出管道输出的前五行。

du 该命令还有许多其他选项可用于优化磁盘空间使用情况的输出。

结论#

我们已经向您展示了如何使用来查找最大的文件和目录 finddu 命令。

现在,您学习了如何在系统上找到最大的文件,您可能需要阅读有关如何使用Linux命令行删除文件和目录的指南。

如果您有任何疑问或意见,请在下面发表评论。

查找码头

Sidebar