安卓系统

在Linux中查找大文件

01 Linux基础 38 文件内容命令 03 grep查找文件内容

01 Linux基础 38 文件内容命令 03 grep查找文件内容

目录:

Anonim

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

本教程说明了如何使用 find du 命令在Linux系统中查找最大的文件和目录。

使用 find 命令查找大文件

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

例如,如果要搜索大小大于100MB的文件,请在当前工作目录中使用以下命令:

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 其他工具结合使用,或者对这些文件执行 sort 操作。

在下面的示例中,我们将 find 命令的输出传递给 ls 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 find. -xdev -type f -size +100M -print 仅在当前工作目录( . )中搜索大于100MB( -size +100M )的文件( -type f ),而不在其他文件系统上寻找目录(- -xdev ),然后在标准输出上打印完整的文件名,然后换行( -print )。 xargs ls -lh - find 命令的输出通过管道传递到 xargs xargs 执行 ls -lh 命令,该命令将以长篇可读的格式打印输出。 sort -k5, 5 -h -r 根据第五列对行进行排序( -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 :仅打印管道输出的前5行。

du 命令包括其他选项,可用于优化磁盘空间使用情况的输出。

结论

当磁盘已满并且想要释放它时,查找大文件非常有用。

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

查找磁盘终端