Q.如何在目录中找出所有大文件?
A.
1)句法forRedHat/CentOS/FedoraLinux
find{/path/to/directory/}-typef-size+{size-in-kb}k-execls-lh{}\;|awk‘{print$9:$5}’
实例:
查找当前目录下大于50MB的文件
$find.-typef-size+50000k-execls-lh{}\;|awk‘{print$9:$5}’
查找目录/var/log大于100MB的文件
#find/var/log-typef-size+100000k-execls-lh{}\;|awk‘{print$9:$5}’
2)句法forDebian/UbuntuLinux
find{/path/to/directory}-typef-size+{file-size-in-kb}k-execls-lh{}\;|awk‘{print$8:$5}’
实例:
查找当前目录下大于10MB的文件
$find.-typef-size+10000k-execls-lh{}\;|awk‘{print$8:$5}’
Sampleoutput:
./.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
./vivek/out/mp3/Eric:230M
列出家目录下文件大小小于500b的文件:
$find$HOME-size-500b
OR
$find~-size-500b
列出根目录下大小是20512-byteblocks的文件:
#find/-size20
Perl技巧:显示大文件
依据文件大小从小到大显示当前目录下每个目录的占用的情况(注:星号和星号的长度)
du-k|sort-n|perl-ne‘if(/^(\d+)\s+(.*$)/){$l=log($1+.1);$m=int($l/log(1024));printf(%6.1f\t%s\t%25s%s\n,($1/(2**(10*$m))),((K,M,G,T,P)[$m]),*x(1.5*$l),$2);}’
ls命令:在目录中找出最大的文件
同样你也能使用ls命令:
$ls-lS
$ls-lS|less
$ls-lS|head+10
ls命令:在目录中找出最小的文件
如下所示:
$ls-lSr
$ls-lSr|less
$ls-lSr|tail-10
其它供鉴:
find.-xdev-printf‘%s%p\n’|sort-nr|head-20
du-xak.|sort-n|tail-50