如何在Linux中查找前10大文件

How to Find the Top 10 Largest Files in Linux

当系统中的磁盘空间用完时,您可能希望使用df命令或du命令或ncdu命令进行检查。

但是所有这些都只会显示当前目录文件,而不会显示系统范围的文件。

您必须花费大量时间才能使用上述命令在系统上获取最大的文件,并且必须转到每个目录才能实现此目的。

这使您面临麻烦,但这不是正确的解决方法。

在Linux中获取前10大文件的最佳方法是

我在Google上花费了很多时间,但是找不到合适的人。 这是因为大多数文章列出了当前目录中的前10个文件,而不是整个系统中的文件。

因此,我想使本文对那些希望从整个系统中获取前10个大文件的人有用。

在本教程中,我们将向您展示如何使用不同的方法在Linux系统上查找前10大文件。

方法1:

Linux中没有特定的命令可以找到它,因此我们一起使用了几个命令来找到它。

1
2
3
4
5
6
7
8
9
10
11
12
# find / -type f -print0 | xargs -0 du -h | sort -rh | head -n 10

1.4G    /swapfile
1.1G    /home/magi/ubuntu-17.04-desktop-amd64.iso
564M    /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqTFU0XzkzUlJUZzA
378M    /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqeldzUmhPeC03Zm8
377M    /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqRGd4V0VrOXM4YVU
100M    /usr/lib/x86_64-linux-gnu/libOxideQtCore.so.0
93M /usr/lib/firefox/libxul.so
84M /var/lib/snapd/snaps/core_3604.snap
84M /var/lib/snapd/snaps/core_3440.snap
84M /var/lib/snapd/snaps/core_3247.snap

细节:
find:这是一个命令,在目录层次结构中搜索文件。
/:检入整个系统(从/目录开始)
-type:选择文件类型。
f:常规文件
-print0:在标准输出上打印完整文件名,后跟一个空字符
|:将一个程序的输出发送到另一程序进行进一步处理的控制运算符。
xargs:这是从标准输入生成和执行命令行的命令。
-0:输入项目以空字符而不是空格终止
du -h:这是一条以人类可读格式计算磁盘使用量的命令
sort:这是对文本文件行进行排序的命令
-r:反转比较结果
-h:以人类可读的格式打印输出
head:这是输出文件第一部分的命令
n -10:打印前10个文件。

方法2:

这是在Linux系统中查找前10大文件的另一种方法。

1
2
3
4
5
6
7
8
9
10
11
12
# find / -type f -exec du -Sh {} + | sort -rh | head -n 10

1.4G    /swapfile
1.1G    /home/magi/ubuntu-17.04-desktop-amd64.iso
564M    /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqTFU0XzkzUlJUZzA
378M    /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqeldzUmhPeC03Zm8
377M    /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqRGd4V0VrOXM4YVU
100M    /usr/lib/x86_64-linux-gnu/libOxideQtCore.so.0
93M /usr/lib/firefox/libxul.so
84M /var/lib/snapd/snaps/core_3604.snap
84M /var/lib/snapd/snaps/core_3440.snap
84M /var/lib/snapd/snaps/core_3247.snap

细节:
find:这是一个命令,在目录层次结构中搜索文件。
/:检查整个系统(从/目录开始)
-type:选择文件类型。
f:常规文件
-exec:-exec操作的此变体在所选文件上运行指定的命令
du:这是一个估计文件空间使用量的命令。
-S:不包括子目录的大小
-h:以人类可读的格式打印尺寸
{}:递归地汇总每个文件的磁盘使用情况。
|:控制运算符,将一个程序的输出发送到另一程序进行进一步处理。
sort:这是对文本文件行进行排序的命令
-r:反转比较结果
-h:比较人类可读的数字
head:这是输出文件第一部分的命令
n -10:打印前10个文件。

方法3:

这是查找或搜索Linux系统中最大的10个最大文件的另一种方法。

1
2
3
4
5
6
7
8
9
10
11
12
# find / -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

84M /var/lib/snapd/snaps/core_3247.snap
84M /var/lib/snapd/snaps/core_3440.snap
84M /var/lib/snapd/snaps/core_3604.snap
93M /usr/lib/firefox/libxul.so
100M    /usr/lib/x86_64-linux-gnu/libOxideQtCore.so.0
377M    /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqRGd4V0VrOXM4YVU
378M    /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqeldzUmhPeC03Zm8
564M    /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqTFU0XzkzUlJUZzA
1.1G    /home/magi/ubuntu-17.04-desktop-amd64.iso
1.4G    /swapfile

细节:
find:这是一个命令,在目录层次结构中搜索文件。
/:检入整个系统(从/目录开始)
-type:文件的类型

f:常规文件
-print0:在标准输出上打印完整的文件名,后跟一个空字符
|:控制运算符,将一个程序的输出发送到另一程序进行进一步处理。

xargs:这是从标准输入生成和执行命令行的命令。
-0:输入项目以空字符而不是空格终止
du:这是一个估计文件空间使用量的命令。

sort:这是对文本文件行进行排序的命令
-n:根据字符串数值进行比较
tail -10:这是输出文件最后部分(最后10个文件)的命令

cut:这是从文件的每一行中删除节的命令
-f2:仅选择这些字段的值。
-I{}:将初始参数中出现的replace-str替换为从标准输入中读取的名称。

-s:仅显示每个参数的总计
-h:以人类可读的格式打印尺寸
{}:递归地汇总每个文件的磁盘使用情况。

参考文献:

  • 超级用户

  • 命令行

  • 堆栈溢出