Linux查找大文件

时间:2020-01-09 14:16:28  来源:igfitidea点击:

问题描述:如何查找目录中的所有大文件?

解决方法:没有一个命令可用于列出所有大文件。
但是,借助find命令和shell管道,您可以轻松列出所有大文件。

Linux列出所有大文件

要查找所有大小超过50,000KB(50MB +)的文件并显示其名称和大小,请使用以下语法:

RedHat/CentOS/Fedora Linux的语法

find {/path/to/directory/} -type f -size +{size-in-kb}k -exec ls -lh {} \; | awk '{ print  ": "  }'

在当前目录中搜索或找到Linux(50MB)的大文件,执行:

$ find . -type f -size +50000k -exec ls -lh {} \; | awk '{ print  ": "  }'

在我的/var/log目录中搜索:

# find /var/log -type f -size +100000k -exec ls -lh {} \; | awk '{ print  ": "  }'

Debian/Ubuntu Linux的语法

find {/path/to/directory} -type f -size +{file-size-in-kb}k -exec ls -lh {} \; | awk '{ print  ": "  }'

在当前目录中搜索:

$ find . -type f -size +10000k -exec ls -lh {} \; | awk '{ print  ": "  }'

输出示例:

./.kde/share/apps/akregator/Archive/http___blogs.msdn.com_MainFeed.aspx?Type=AllBlogs.mk4: 91M
./out/out.tar.gz: 828M
./.cache/tracker/file-meta.db: 101M
./ubuntu-8.04-desktop-i386.iso: 700M
./Hyman/out/mp3/Eric: 230M

上面的命令将列出大小大于10,000 KB的文件。
要列出主目录树中小于500字节大小的所有文件,请执行:

$ find $HOME -size -500b

或者

$ find ~ -size -500b

要列出系统上大小恰好为20 512字节块的所有文件,请执行:

# find / -size 20

Perl hack:显示大文件

通过星号的长度显示文件的大小:

du -k | sort -n | perl -ne 'if ( /^(\d+)\s+(.*$)/){$l=log(+.1);$m=int($l/log(1024)); printf  ("%6.1f\t%s\t%25s  %s\n",(/(2**(10*$m))),(("K","M","G","T","P")[$m]),"*"x (1.5*$l),);}'

ls命令:查找目录中最大的文件

您也可以使用ls命令:

$ ls -lS
$ ls -lS | less
$ ls -lS | head +10

ls命令:查找目录中的最小文件

使用ls命令,如下所示:

$ ls -lSr
$ ls -lSr | less
$ ls -lSr | tail -10