在Unix(Tru64)中,如何使ls命令以兆字节显示文件大小?目前,我可以使用以下命令以字节为单位显示它:

ls -la

#1 楼

也许-h就足够了:


-h
与-l选项一起使用时,请使用单位后缀:字节,千字节,兆字节,千兆字节,兆字节和Petabyte,以便使用以2为基数的大小将
的位数减少到三位或更少。


阅读特定命令的手册/帮助,例如在这里man commandname

评论


谢谢,但是-h选项在Tru64 Unix上似乎不存在。

– atricapilla
2010-09-20 11:26

一般建议:安装GNU实用程序...

– reinierpost
2010-09-20 12:35

我喜欢您关于使用人工的提示,但实际上,在很多时候(与现在为止,当我在Google上找到此结果时),在Google上的搜索比使用人工要快得多。

–trusktr
13年3月20日下午5:00

Google的提示很好,所有提示都可以使用,但最终手册页是系统/ OS,甚至是特定于主机的页面,通常是在编译或安装软件时创建的,因此对特定系统上的软件具有权威性。

– Nevin Williams
13年5月5日下午4:33

快来看看,有位在线上的gnu / linux用户:linux.die.net/man

– MariusMatutiae
13-10-11在8:20

#2 楼

ls --block-size=M打印以兆字节为单位的大小,但对于1 MB以下的任何内容也显示1MB。不过,我不确定此选项是否在您的UNIX版本的ls中可以接受。 >)

在侧面节点上:ls -lh还在当前目录中打印目录大小。

评论


谢谢!我需要监视文件夹中活动文件的更改,并且在文件增长到1GB以上之后使用ls -h毫无意义,因此我在1秒循环中使用此命令:做ls -al --block-size = M;睡觉1;完成

–ccpizza
16年3月19日在13:13

#3 楼

您将必须使用awk为您进行数学运算:

ls -l | awk 'BEGIN{mega=1048576}  >= mega { = /mega "MB"} {print}'


这不会影响小于mega的文件的输出。

您可能需要调整字段编号以匹配ls的布局方式。如果您愿意,可以将mega更改为“ 1000000”。

这将打印出比您可能想要的更多的小数位。您可以实现舍入功能。

评论


比ls -lh或ls --block-size = M优雅得多,但是AWK非常有用!

–Statwonk
2014-09-28 14:50

正是我所需要的。所有其他解决方案都四舍五入到最接近的MB,但这显示了几个小数位,并且可以轻松自定义。

– zeroimpl
14-10-17在0:02

对于那些没有-h选项的系统(AIX-我在看着你),这是一个很好的解决方案。

– Buggabill
15年11月18日在13:22

#4 楼

尝试使用ls -shR以获得递归的人类可读格式。

评论


OP表示Tru64上没有-h,并且在发布此答案的两年前就这样做了。

–用户
13-10-11在9:02

以为是我的责任是帮助那些使用相同的google搜索到达此处的人。

–分类
17-2-22在17:52

#5 楼

试试ls -lash,它以人类可读的格式打印尺寸

评论


我一直忘记这一点,但现在不会。 “易于记忆的格式” :)

–sk8terboi87ツ
20年4月7日,11:10

#6 楼

du -sm filename.txt

评论


它总是四舍五入...如果大小小于1 MB,例如500K,那么它将打印1M

– AnonGeek
12年6月29日在13:08

#7 楼

您还可以键入

du -sh ./*


,这将以可读格式列出当前目录下的所有文件夹,包括更常见的文件大小,如Kb,Mb和Gb。

#8 楼

如果只需要一个特定文件的大小,则对先前答案进行简单推断的命令是:

是供人类阅读的(如上所述)。

输出将如下所示:文件名,它将列出目录,并在文件名旁边放置每个文件的大小,这与-s在不使用文件名参数的情况下调用时的操作相同。 >

评论


这个问题是关于Tru64 Unix的,OP在大约五年前就声明-h选项在该系统上的ls中不存在。

– G-Man说“恢复莫妮卡”
15年6月13日在8:14

#9 楼

ls -l --block-size=MB 


对于--block-size参数:


MB用于10 ^ 6
仅将M用于2 ^ 20


评论


请注意,这不会显示任何小数位。同样,任何大于0 kB但不大于1 MB的内容都将显示为1MB。因此,我发现ls -l --block-size = kB更有用。

– DaAwesomeP
2015年10月26日,下午2:31

#10 楼

如果您只是对文件大小感兴趣,而不必使用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


这将打印文件大小无需解析任何内容。

评论


OP想要MB大小,也许stat选项会产生人类可读的大小?

–炼金术士
16-3-12在10:47

啊,那真是我的愚蠢。感谢您抓住这一点。据我所知,stat没有使用--printf或其他任何选项来控制大小的选项。可能需要结合使用printf和bc命令行实用程序。在这种情况下,何必麻烦。 ls和cut / awk会更快。

– SKN
16-4-23在21:42