如何在Linux中查找大文件与目录
随着时间的推移,您的磁盘驱动器可能会被大文件占用大量磁盘空间,不必要文件弄得乱七八糟。通常是因为大型日志文件或备份文件,导致Linux系统的磁盘空间不足。
本教程将说明如何使用find
和du
命令在Linux系统中查找大文件和目录。find命令常用于文件的查找,du命令用于对目录占用磁盘空间进行计算。我们还使用sort命令对文件进行排序,使用head命令获取指定数量的输出。
使用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
对这些文件执行操作。
在下面的示例中,我们传递find
命令的输出到ls
,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
- 基于ls -lh输出的第5列(-k5,5
)进行排序,以可读格式(-h
)的值并反转结果(-r
)。
head
:仅打印管道输出的前10行。
find
命令带有许多强大的选项。例如,您可以搜索超过多少天的大文件,具有特定扩展名的大文件或属于特定用户的大文件。
使用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行。
结论
当磁盘已满并且您想要释放它时,查找大文件非常有用。现在您已经知道如何找到了系统中的大文件,您可能需要阅读有关如何使用Linux命令行删除文件和目录的教程。如果您有任何问题或意见,请在下面留言。
以上是 如何在Linux中查找大文件与目录 的全部内容, 来源链接: utcz.com/z/506964.html