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. 1root root 10May 2813:15/usr/tmp -> ../var/tmp
/usr/lib64:
total 275M
-rwxr-xr-x 1root root 47M Dec 72011libgcj.so.10.0.0
-rwxr-xr-x. 1root root 41M Dec 82011libwireshark.so.0.0.1
-rwxr-xr-x. 1root root 16M Nov 122010libicudata.so.42.1
-rwxr-xr-x 1root root 11M Sep 262011libQtGui.so.4.6.2
-rwxr-xr-x 1root root 7.6M Feb 32012libgs.so.8.70
-rwxr-xr-x 1root root 6.9M Sep 262011libQtDesigner.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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章