随着时间的推移,您的磁盘驱动器可能会因大量不必要的文件而变得混乱,占用大量磁盘空间。通常,Linux 系统会因日志或备份文件过大而耗尽磁盘空间。
本教程介绍如何使用以下命令查找 Linux 系统中最大的文件和目录find
and du
命令。
使用以下命令查找大文件find
命令#
The find
命令是 Linux 系统管理员武器库中最强大的工具之一。它允许您根据不同的条件(包括文件大小)搜索文件和目录。
例如,要搜索大小大于 100 MB 的文件,请在当前工作目录,您将运行以下命令:
sudo find . -xdev -type f -size +100M
Replace .
包含要搜索最大文件的目录的路径。
输出将显示文件列表,没有任何附加信息。
/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
The find
命令还可以与其他工具结合使用,例如ls
or sort
对这些文件执行操作。
在下面的示例中,我们传递的输出find
命令到ls
这将打印每个找到的文件的大小,然后将该输出通过管道传输到sort
命令根据第五列(文件大小)对其进行排序。
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
- 根据第五列对行进行排序(-k5,5
),比较人类可读格式的值(-h
)并将结果反转(-r
).
-
head
:仅打印管道输出的前 10 行。
The find命令带有很多强大的选项。例如,您可以搜索超过 x 天的大文件、具有特定扩展名的大文件或属于特定用户的大文件。
使用以下命令查找大文件和目录du
命令#
The 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:仅打印管道输出的前五行。
The du命令还有许多其他选项,可用于优化磁盘空间使用情况的输出。
结论#
我们向您展示了如何使用以下命令查找最大的文件和目录find
and du
命令。
现在您已经了解了如何找到系统上最大的文件,您可能需要阅读我们的指南如何使用 Linux 命令行删除文件和目录
.
如果您有任何疑问或意见,请在下面留言。