是否有可能在Unix中使用ls列出子目录的总大小及其所有内容,而不是通常的4K(我假设)只是目录文件本身?
total 12K
drwxrwxr-x 6 *** *** 4.0K 2009-06-19 10:10 branches
drwxrwxr-x 13 *** *** 4.0K 2009-06-19 10:52 tags
drwxrwxr-x 16 *** *** 4.0K 2009-06-19 10:02 trunk
在翻遍了手册之后,我一无所获。
是否有可能在Unix中使用ls列出子目录的总大小及其所有内容,而不是通常的4K(我假设)只是目录文件本身?
total 12K
drwxrwxr-x 6 *** *** 4.0K 2009-06-19 10:10 branches
drwxrwxr-x 13 *** *** 4.0K 2009-06-19 10:52 tags
drwxrwxr-x 16 *** *** 4.0K 2009-06-19 10:02 trunk
在翻遍了手册之后,我一无所获。
当前回答
看一下du命令
其他回答
这些都是很好的建议,但我用的是:
du -ksh * | sort -n -r
-ksh确保文件和文件夹以人类可读的格式列出,并以兆字节、千字节等为单位。然后你对它们进行数值排序,然后反转排序,让大的放在前面。
这个命令唯一的缺点是,计算机不知道千兆字节比兆字节大,所以它只会按数字排序,你经常会发现这样的列表:
120K
12M
4G
只是要仔细观察单位。
该命令也适用于Mac(而sort -h则不能)。
du -sh * | sort -h
这将以人类可读的格式显示。
嗯,最好的方法是使用这个命令:
du -h -x / | sort -hr >> /home/log_size.txt
然后你就可以在你的服务器上获得所有大小的文件夹。轻松帮助您找到最大的尺寸。
您需要的命令是'du -sk' du = "磁盘使用率"
-k标志提供以千字节为单位的输出,而不是磁盘扇区的du默认值(512字节块)。
-s标志将只列出顶级目录(即默认情况下的当前目录或命令行上指定的目录)中的内容。奇怪的是,在这方面du和ls表现相反。默认情况下,du将递归地提供每个子目录的磁盘使用情况。相反,ls只会给出指定目录下的列表文件。(ls -R提供递归行为。)
看一下du命令