为什么 ls -lSh 命令 return 非常小的文件大小?

Why does ls -lSh command return very small file sizes?

使用ls -lSh 命令时,文件大小的输出非常小。例如:

ls -lSh | grep Xcode.app #我在应用程序目录中对终端的命令

drwxr-xr-x@ 3 root wheel 96B Dec 17 14:59 Xcode.app #output

如您所见,Xcode 只有 96B,而实际上磁盘上超过 6GB。有人可以解释一下这里应用的公式吗?

我是 运行 iTerm2 on macosx catalina

.app 实际上是目录,也不是普通文件。请尝试 du -sh Xcode.app

ls 不报告 整个目录的大小 ,而只报告 目录条目本身 。如果你想要聚合目录大小,你应该使用 du 或递归计算大小的类似实用程序。 ls 输出的大小是目录条目的大小,如果你有更多的文件和子目录,它通常会增加,但当你有大的单个文件时,它不会增加,并且在很大程度上取决于底层文件系统。

-l 开关显示您列出的项目的 "allocated size"。对于目录,其大小仅相当于其在文件系统中的条目,而且非常小。人们通常认为的目录的 "size" 实际上是由驻留在它下面的文件占用的,并且由 du 命令报告。