是否有可能在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 -ksh * | sort -n -r
-ksh确保文件和文件夹以人类可读的格式列出,并以兆字节、千字节等为单位。然后你对它们进行数值排序,然后反转排序,让大的放在前面。
这个命令唯一的缺点是,计算机不知道千兆字节比兆字节大,所以它只会按数字排序,你经常会发现这样的列表:
120K
12M
4G
只是要仔细观察单位。
该命令也适用于Mac(而sort -h则不能)。
其他回答
有一段时间,我使用Nautilus(在RHEL 6.0的Gnome桌面上)来删除我的主文件夹上的文件,而不是使用bash中的rm命令。因此,总大小显示为
du -sh
每个子目录的磁盘使用量之和不匹配,当我使用
du -sh *
我花了一段时间才意识到Nautilus将删除的文件发送到它的垃圾文件夹,而这个文件夹并没有在du -sh *命令中列出。所以,我只是想分享这个,以防有人面临同样的问题。
目录中文件夹和文件的有序列表(后代顺序,根据大小):
du -skh * | sort -hr
包括隐藏文件:
du -skh .??* * | sort -hr
解释:
du命令用于估计磁盘使用情况。
-s summary,不是递归的,只在这个级别的文件/文件夹。 -kh人类可读,如GB, MB, KB等… 。? ?*带有点的名字。长度为3个或更多字符(不包括。和. .链接)。 *所有不以..开头的文件/文件夹
Du默认先显示较小的尺寸。我们对两组文件(隐藏文件和普通文件)调用它,因此我们需要再次组合结果对结果进行排序。
-h重新排序考虑人类可读字符(人类数字,如GB, MB等.)。 -r颠倒顺序。
请注意。其他答案包含大多数这些选项,但分散在不同的,这里没有探索如何轻松包含隐藏的文件/文件夹。
在初始化脚本中放置。bashrc…根据需要调整def。
duh() {
# shows disk utilization for a path and depth level
path="${1:-$PWD}"
level="${2:-0}"
du "$path" -h --max-depth="$level"
}
试着这样做:
du -sh *
简写版:
du --summarize --human-readable *
解释:
du:磁盘使用率
-s:显示每个指定文件的摘要。(相当于-d 0)
-h: "人类可读"输出。使用单位后缀:Byte, Kibibyte (KiB), Mebibyte (MiB), Gibibyte (GiB), Tebibyte (TiB)和Pebibyte (PiB)。(BASE2)
输入“ls -ltrh /path_to_directory”