你的位置:首页 > 操作系统

[操作系统]如何查找特定目录下最大的文件及文件夹


如何查看特定目录下大小在前10位的文件

find 目录 -ls |sort -nrk7  |head

参数说明如下:

-ls    True;  list  current  file  in ls -dils format on standard output.

没加-ls之前,输出的只是文件名,类似于

/u01/app/oracle/oradata/test/system01.dbf

加了-ls之后,输出的类似于

924123 1802252 -rw-r-----  1 oracle  oinstall 1845501952 May 21 20:55 /u01/app/oracle/oradata/test/system01.dbf

-n, --numeric-sort
compare according to string numerical value

根据字符的数字值来进行比较,如果没有-n,则排序依据的是字符串的大小,这样,会导致123大于1224,因为第一个字符串的第三位的ASCII码的值大于第二个字符串的第三位的值。尽管从数字上来看,1224大于123。

-r, --reverse
reverse the result of comparisons

sort默认是顺序排列的,加了-r以后,就是降序排列

-k, --key=POS1[,POS2]
start a key at POS1 (origin 1), end it at POS2 (default end of line)

指定排序的列,-k7指的是按照第7列的值进行排序,在上例中,指的就是1845501952所在列。

如何查看特定目录下大小在前10位的文件夹

du -S 目录 |sort -nr |head

参数说明如下:

-S, --separate-dirs
do not include size of subdirectories

不包括子文件夹的大小,即查找的是最低一层文件夹。

PS:这两个命令在AIX上同样适用。