59

在 Linux 中,我键入du -sh * | sort -rh以显示当前目录中的文件和目录,从大到小排序。

我如何在 OSX 终端中执行此操作,最好不安装任何额外的东西?

4

3 回答 3

85

2 年后(在 OSX 10.11 中使用终端)对这个问题的更好答案是简单地将 -h 添加到 ls 命令以获得人类可读的文件大小。

据我了解,在以后的 OSX 版本中,不需要使用 brew 安装 coreutils。(如果我错了,有人纠正我。)

例如,要获取当前目录中的文件列表,作为单列列表并显示文件详细信息,请输入:

ls -l

如果您想要人类可读的文件大小,只需添加一个“h”:

ls -hl

或者

ls -lh

在这种情况下,“-”之后的字母可以是任意顺序。

如果如问题详细信息所述,希望文件列表按文件大小排序,最大文件大小在顶部,则添加大写“S”:

ls -lhS

如果您还想列出不可见文件,请添加“a”:

ls -alhS

同样,“-”之后的字母可以是任何顺序。


如果您经常在当前目录中创建和编辑文件,可能是因为您正在处理任务或项目,则另一种组合是:

ls -hltur

这会以人类可读的文件大小格式列出文件,在终端窗口下方的长列表中。

“t”指示文件按最后修改日期/时间的排序顺序。

然后,“u”会稍微改变它以使用文件上次访问的时间,而不是上次修改的时间。

然后“r”反转列表的顺序,以便最近访问或“触摸”的文件最后列出,在列表的底部。

完整的组合意味着您有一个详细的列表,其中包含您最近阅读、打开或修改过的文件,或者您已运行的进程或另一个进程类似地“接触”过的文件,所有这些都位于列表的底部。

因此,即使您当前目录中的列表很长,以至于如果不向上滚动就无法读取列表的开头,您与之交互的文件很可能在您下一个准备输入的命令行上方保持可见。

这些选项以及更多选项位于 ls 命令的手册(手册)页面中:

man ls

如果您想以上述一种格式定期列出文件,或者在阅读手册页时选择另一种格式,您可以为您的.bash_profile文件添加别名(例如,使用 nano 打开此文件,并在您位于您的主目录中)。

例如,要满足问题原始发帖人的要求,请打开文件并在新行中添加:

alias lss='ls -hlS'

然后,在保存文件并退出该终端窗口并打开一个新的终端窗口后,在命令行中键入“lss”应该会提供您在列出文件时经常查找的内容。

如果你不知道如何使用 nano,首先通过键入来调出它的手册页

man nano

手册页将解释如何使用 nano。

要退出手册页并返回可以输入命令的位置,请按“q”键。

于 2017-01-22T17:40:49.513 回答
26

你没有。除非您安装 GNU Coreutils。

以 brew 为例

brew install coreutils

然后你会得到支持 -h 选项的 gsort 命令。

于 2014-08-22T20:25:12.427 回答
7

下面给出的命令行将列出当前目录中根据大小(从大到小)排序的所有文件和目录。输出格式为

ls -S -lh | awk '{print $5, $9}'
于 2014-08-23T04:32:42.190 回答