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)。