Answers:
也许-h对您来说足够了:
-h
与-l选项一起使用时,请使用单位后缀:字节,千字节,兆字节,千兆字节,太字节和PB,以便使用以2为基数的大小将位数减少到三位或更少。
ls -lah
一般建议:man commandname用于阅读某些命令的手册/帮助,例如,此处man ls。
ls --block-size=M打印以兆字节为单位的大小,但对于1 MB以下的任何内容也显示1MB。不过,我不确定此选项在您的UNIX版本的ls中是否可接受。
ls -lh如果文件足够大,实际上也可以以GB为单位打印大小(无论如何:在Linux 64位上,它确实可以工作:>)
在侧面节点上:du -sh *在当前目录中也打印目录大小。
ls -h文件增长到1GB以上后,使用毫无意义,因此我在1秒的循环中使用此命令:while true ; do ls -al --block-size=M ; sleep 1 ; done
您将不得不使用它awk来为您做数学:
ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'
这不会影响小于的文件的输出mega。
您可能需要调整字段编号以匹配您ls的布局方式。如果您mega愿意,可以将其更改为“ 1000000”。
这将打印出更多的小数位数,而不是您想要的。您可以实现舍入功能。
ls -lhor 优雅得多ls --block-size=M,但是AWK非常有用!
尝试ls -shR使用递归的人类可读格式。
-hTru64 上没有此功能,并且在发布此答案的两年前就这样做了。
ls -l --block-size=MB
对于--block-size参数:
MB为10 ^ 6M用于2 ^ 201MB。因此,我发现ls -l --block-size=kB它更有用。
如果您仅对文件大小感兴趣,而不必使用该ls命令,请尝试以下操作:
# echo "Hello World" > file.txt
# ls -l file.txt
-rw-r--r-- 1 user user 12 Mar 10 11:32 file.txt
# stat --printf='%s\n' file.txt
12
这将打印文件大小,而无需解析任何内容。