054.查找指定目录下最大的文件

例:查找/usr下最大的文件
1 .首先想到的是du命令
[root @cdn ~]# du -sh /usr/*|sort -rn|head
657M /usr/local
591M /usr/lib
499M /usr/lib64
201M /usr/bin
110M /usr/include
55M /usr/libexec
47M /usr/src
22M /usr/sbin
8 .0K /usr/etc
4 .0K /usr/games

从结果中可以看出,最大的是一个目录,显然此命令不行。


2 .再然后想到ls
[root @cdn ~]# ls -lSh /usr/* |head
lrwxrwxrwx. 1 root root 10 May 28 13 : 15 /usr/tmp -> ../var/tmp
/usr/lib64:
total 275M
-rwxr-xr-x 1 root root 47M Dec 7 2011 libgcj.so. 10.0 . 0
-rwxr-xr-x. 1 root root 41M Dec 8 2011 libwireshark.so. 0.0 . 1
-rwxr-xr-x. 1 root root 16M Nov 12 2010 libicudata.so. 42.1
-rwxr-xr-x 1 root root 11M Sep 26 2011 libQtGui.so. 4.6 . 2
-rwxr-xr-x 1 root root 7 .6M Feb 3 2012 libgs.so. 8.70
-rwxr-xr-x 1 root root 6 .9M Sep 26 2011 libQtDesigner.so. 4.6 . 2
用find命令查找大于47M的文件
[root @cdn ~]# find /usr/ -size +47M -print
/usr/local/java/jre/lib/rt.jar
/usr/lib/locale/locale-archive

因此,此命令也不行


3 .结合find、ls、du
[root @cdn ~]# find /usr/ -name `ls -lR /usr|sort -k 5 -rn|head - 1 |awk '{print $NF}' `
/usr/lib/locale/locale-archive
[root @cdn ~]# du -sh `find /usr/ -name \`ls -lR /usr|sort -k 5 -rn|head - 1 |awk '{print $NF}' \``
95M /usr/lib/locale/locale-archive
[root @cdn ~]# find /usr/ -type f |xargs du -sk|sort -rn|head - 1
96796 /usr/lib/locale/locale-archive


你可能感兴趣的:(linux,查找文件,查找目录)