如何使`ls`显示兆字节的文件大小?


Answers:


513

ls -l --block-size=M将为您提供长格式列表(需要实际查看文件大小),并将文件大小四舍五入到最接近的MiB。

如果要使用MB(10 ^ 6字节)而不是MiB(2 ^ 20字节)单位,请--block-size=MB改用。

如果您不希望在M文件大小中附加后缀,则可以使用--block-size=1M。感谢StéphaneChazelas提出的建议。

如果您只是希望文件大小以“合理的”单位而不是特定的兆字节为单位,则可以使用它-lh来获取长格式列表和易于阅读的文件大小表示。这将使用文件大小的单位,以保持带有约1-3位的文件大小(所以你会看到文件大小不一样6.1K151K7.1M15M1.5G等。

--block-size参数在手册页中描述了ls;man ls并搜索SIZE。它也允许MB / MiB以外的单元,并且从它的外观(我没有尝试过)中也可以选择任意块大小(因此,如果需要,您可以将文件大小视为429字节块的数量)至)。

请注意,--block-size和和-h都是Open Groupls之上的GNU扩展,因此,如果您没有GNU用户区(大多数Linux安装会这样做),则这可能不起作用。如上所述ls,GNU Coreutils 8.5中的确实支持--block-size和-h。感谢kojiro指出了这一点。


11
可能需要注意一个差异:--block-size=M导致M在尺寸旁边显示一个后缀,您可以使用--block-size=1M它来省略它。值得一提的是您还需要GNU ls(大多数非嵌入式Linux系统都将具有GNU ls)。
斯特凡Chazelas

2
这会是GNU ls吗?标准ls没有这样的论点。带有xsi扩展名 ls-s标志,使其报告块数,但没有标准标志--block-size
kojiro

2
@kojiro GNU ls --block-size从coreutils 8.5起确实存在,这是我的Debian Squeeze系统上安装的。由于该问题是明确针对Linux的,并且未指定其他任何内容,因此我承认我假设围绕GNU coreutils的用户领域。我已经更新了答案以澄清这一点。(此外,Open Group ls似乎也没有-h。:)
CVn

2
@EmanuelBerg,1000 ^ 7(10 ^ 21)大于2 ^ 64(其为〜10 ^ 19.27)
斯特凡Chazelas

4
就像答案的最后一段所说的那样,@ Tom --block-size是一个GNU扩展。我怀疑Mac OS X不使用GNU ls
CVn

384

ls -lh 给出人类可读的文件大小,长格式。

它根据需要使用k,M,G和T后缀(或无后缀的字节),因此数量保持较小,例如1.4K178M

-h 是GNU coreutils扩展,不是基线POSIX。

请注意,这不能完全按照要求回答问题。如果您甚至在小文件或巨大文件中都希望严格使用MiB中的大小,则MichaelKjörling的答案是针对GNU coreutilsls


4
那将以大于1.0 GiB的任何大小打印文件大小(以GB为单位)(我相信)。
CVn

5
@MichaelKjörling我不认为这是一个错误的答案(尽管我没有投票赞成)。有时候,OP并没有按照他们的本意来表达一个问题,因此他们可能只是想要人类可读的输出,而是用“ MB”表示。
戴森

5
已投票。“这不能回答(MB)问题”是一个非常有效的陈述,但是由于该回答是在相同的上下文中,所以该回答仅增加了此SO页的有用性。我只是来此页面寻找通用的“以人类可读形式显示日期”要求的解决方案,并且h--block-size=M
-Ejaz

6
“人类可读”有点讽刺意味。ls -l如果不是人类,谁会使用?:p
布劳恩

2
@chengyang:解析ls -l输出是错误的处理方式,有99%的时间。 unix.stackexchange.com/questions/128985/why-not-parse-ls。1%是慷慨的,并且几乎仅限于您为交互式使用而一次性编写的单行代码,而不是您将在未知文件名上重复使用的脚本。
彼得·科德斯

45

ls -lhS 按大小排序,以人类可读的格式


2
ls -lh出于无法真正回答问题的原因,请参见答案的评论。
亚历山大·巴蒂舍夫

2
这不仅不能真正回答问题(如Sirex回答的注释中所述),而且还不能在任何现有答案上添加任何相关内容:OP并未询问排序顺序。
的CVn

6
只是认为按大小排序可能是人们可能采取的后续行动,至少我就是这样
jaciefan

1
在这种情况下,人们应该考虑如何按大小列出所有文件,而这恰恰是这种情况。
CVn

我认为这是对答案的补充,特别是因为它详细说明了Sirex的答案
Dowlers,

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.