zsh:“ls -S”在实用程序文件夹中不起作用

zsh:“ls -S”在实用程序文件夹中不起作用

这几天我正在学习一些基本的UNIX命令。今天是ls。我想按大小对结果进行排序。

  • 我尝试过,ls -lS /Applications/Utilities结果没有排序。

  • 我尝试过,ls -lS ~/Downloads结果已排序。

知道为什么吗?为什么我无法对特定文件夹的结果进行排序?

答案1

/Applications/Utilities闻起来像 macOS。 IIRC macOS 上的目录通常包含目录,而不是常规文件。

目录是特殊类型的文件,包含某种不透明格式的文件名列表。目录文件的大小通常随着其中文件的数量而增长,但并非总是如此。例如,我不了解 macOS 文件系统,但在许多其他文件系统上,目录条目占用的空间在删除时(当相应文件从目录中取消链接时)通常不会被回收。

目录文件也经常以块的形式分配。我怀疑所有这些目录都具有相同的大小,因为它们包含很少的条目,因此只有一个块(可能类似于 4KiB),这可以解释为什么ls按名称对它们进行排序(作为解决关系的一种方式)。

总而言之,目录的大小并不真正相关。

如果您想根据目录中所有文件的累积磁盘使用情况(递归地)对目录列表进行排序,您可以这样做:

du -ks /Application/Utilities/* | sort -n

(假设这些目录名称不包含换行符)。

相关内容