【发布时间】:2014-10-16 18:29:39
【问题描述】:
在 Linux 中,我输入 du -sh * | sort -rh 以显示当前目录中的文件和目录,从大到小排序。
如何在 OSX 终端中执行此操作,最好不安装任何额外的东西?
【问题讨论】:
在 Linux 中,我输入 du -sh * | sort -rh 以显示当前目录中的文件和目录,从大到小排序。
如何在 OSX 终端中执行此操作,最好不安装任何额外的东西?
【问题讨论】:
你没有。除非您安装 GNU Coreutils。
以 brew 为例
brew install coreutils
然后你会得到支持 -h 选项的 gsort 命令。
【讨论】:
ls 变体,所以我可以与 du 一起使用。例如cd ~; du -sh * | gsort -h
下面给出的命令行将根据大小(从大到小)排序列出当前目录中的所有文件和目录。输出格式为
ls -S -lh | awk '{print $5, $9}'
【讨论】:
du 那样调整目录的内容。
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”键。
【讨论】:
ls -h 坏了,它显示了一些非常小的文件夹大小,只有几个字节或 kb,而不是 gb。有什么不对?我正在使用 Mojave。
ls -lah 返回我所有文件夹的大小都是 4K :|