在Linux中如何查找最大的10个文件方法汇总

2019-10-10 12:20:13刘景俊

详解:

find:在目录结构中搜索文件的命令 /:在整个系统(从根目录开始)中查找 -type:指定文件类型
f:普通文件 -exec:在所选文件上运行指定命令 du:计算文件占用的磁盘空间的命令 -S:不包含子目录的大小 -h:以可读格式打印 {}:递归地查找目录,统计每个文件占用的磁盘空间 |:控制操作符,将一条命令的输出传递给下一个命令以供进一步处理 sort:对文本文件进行按行排序的命令 -r:反转结果 -h:用可读格式打印输出 head:输出文件开头部分的命令 n -10:打印前 10 个文件

方法 3

这里介绍另一种在 Linux 系统中搜索最大的前 10 个文件的方法。

# 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:输出完整的文件名,其后跟一个空字符(null) |:控制操作符,将一条命令的输出传递给下一个命令以供进一步处理 xargs:将标准输入转换成命令行参数的命令 -0:以空字符(null)而不是空白字符来分割记录 du:计算文件占用的磁盘空间的命令 sort:对文本文件进行按行排序的命令 -n:根据数字大小进行比较 tail -10:输出文件结尾部分的命令(最后 10 个文件) cut:从每行删除特定部分的命令 -f2:只选择特定字段值 -I{}:将初始参数中出现的每个替换字符串都替换为从标准输入读取的名称 -s:仅显示每个参数的总和 -h:用可读格式打印输出 {}:递归地查找目录,统计每个文件占用的磁盘空间

方法 4

还有一种在 Linux 系统中查找最大的前 10 个文件的方法。

# find / -type f -ls | sort -k 7 -r -n | head -10 | column -t | awk '{print $7,$11}'
 
1494845440 /swapfile
1085984380 /home/magi/ubuntu-17.04-desktop-amd64.iso
591003648 /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqTFU0XzkzUlJUZzA
395770383 /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqeldzUmhPeC03Zm8
394891761 /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqRGd4V0VrOXM4YVU
103999072 /usr/lib/x86_64-linux-gnu/libOxideQtCore.so.0
97356256 /usr/lib/firefox/libxul.so
87896064 /var/lib/snapd/snaps/core_3604.snap
87793664 /var/lib/snapd/snaps/core_3440.snap
87089152 /var/lib/snapd/snaps/core_3247.snap