Answers:
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.1K
,151K
,7.1M
,15M
,1.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指出了这一点。
--block-size
从coreutils 8.5起确实存在,这是我的Debian Squeeze系统上安装的。由于该问题是明确针对Linux的,并且未指定其他任何内容,因此我承认我假设围绕GNU coreutils的用户领域。我已经更新了答案以澄清这一点。(此外,Open Group ls似乎也没有-h。:)
)
--block-size
是一个GNU扩展。我怀疑Mac OS X不使用GNU ls
。
ls -lh
给出人类可读的文件大小,长格式。
它根据需要使用k,M,G和T后缀(或无后缀的字节),因此数量保持较小,例如1.4K
或178M
。
-h
是GNU coreutils扩展,不是基线POSIX。
请注意,这不能完全按照要求回答问题。如果您甚至在小文件或巨大文件中都希望严格使用MiB中的大小,则MichaelKjörling的答案是针对GNU coreutilsls
。
h
比--block-size=M
ls -l
如果不是人类,谁会使用?:p
ls -l
输出是错误的处理方式,有99%的时间。 unix.stackexchange.com/questions/128985/why-not-parse-ls。1%是慷慨的,并且几乎仅限于您为交互式使用而一次性编写的单行代码,而不是您将在未知文件名上重复使用的脚本。
这是按文件大小(仍然可读)递增的目录顺序列出所有内容的选项。
ls -lSrh
--block-size=M
导致M
在尺寸旁边显示一个后缀,您可以使用--block-size=1M
它来省略它。值得一提的是您还需要GNU ls(大多数非嵌入式Linux系统都将具有GNU ls)。