ls-command:如何以兆字节显示文件大小?

168 unix command-line ls mega

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

ls -la
Run Code Online (Sandbox Code Playgroud)

Fel*_*lix 271

也许-h对你来说就足够了:

-h
与 -l 选项一起使用时,使用单位后缀:Byte、Kilobyte、Megabyte、Gigabyte、Terabyte 和 Petabyte,以便使用以 2 为基数的大小将位数减少到 3 位或更少。

ls -lah
Run Code Online (Sandbox Code Playgroud)

一般建议:man commandname用于阅读某个命令的手册/帮助,例如这里man ls

  • 我喜欢你关于使用 man 的提示,但实际上,很多时候在 Google 上搜索比使用 man 快得多(就像现在,当我在 Google 上找到这个结果时)。 (23认同)
  • 一般建议:安装 GNU 实用程序... (8认同)
  • 谷歌很好,所有的一般提示,但最终手册页是系统/操作系统,甚至是特定于主机的,通常在编译或安装软件时创建,因此,对特定系统上的软件具有权威性。 (5认同)

小智 34

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

ls -lh如果文件足够大,实际上也会以 GB 为单位打印大小(无论如何:在Linux 64 位上这确实有效:>)

在侧节点上:du -sh *还打印当前目录中的目录大小。


Den*_*son 16

你将不得不使用awk为你做数学:

ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'
Run Code Online (Sandbox Code Playgroud)

这不会影响小于mega.

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

这将打印比您可能想要的更多的小数位。你可以实现一个舍入函数。

  • 远不如 `ls -lh` 或 `ls --block-size=M` 优雅,但 AWK 非常有用! (3认同)
  • 对于那些没有 -h 选项的系统(AIX - 我在看着你),这是一个很好的解决方案。 (3认同)
  • 正是我所需要的。所有其他解决方案都四舍五入到最接近的 MB,但这显示了几个小数位并且很容易定制。 (2认同)

Sor*_*ter 13

尝试ls -shR递归人类可读格式。

  • [OP 表示 Tru64 上没有 `-h`](http://superuser.com/questions/190653/ls-command-how-to-print-file-size-in-megabytes#comment193423_190654),以及在发布此答案之前的两年多时间里这样做了。 (4认同)
  • 认为我有责任帮助那些使用相同的谷歌搜索到达这里的人。 (3认同)

小智 9

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


Eth*_*her 5

du -sm filename.txt


小智 5

你也可以输入

du -sh ./*
Run Code Online (Sandbox Code Playgroud)

这将列出当前目录下的所有文件夹,具有人类可读的格式,包括更熟悉的文件大小,以 Kb、Mb、Gb 为单位。