按大小对文件夹中的所有文件(任何深度)进行排序

Žel*_*pin 12 finder file-management macos

我有一个装满文件夹和文件的文件夹。我想按大小对文件进行排序(这样我就可以删除最大的文件)。

我知道如何在 Windows 资源管理器中执行此操作,但我找不到在 Mac OS X Finder 中执行此操作的方法。

视窗 2003:

  • 在 Windows 资源管理器中打开文件夹
  • 单击按钮 Search
  • 离开Search for files or folders namedContaining text文本字段为空
  • 单击按钮 Search Now
  • 按大小排序

有没有办法在 Mac OS X 上的 Finder 中做这样的事情?

der*_*oni 13

打开终端,cd 到你要分析的文件夹,使用这个命令:

find . -type f -print0 | xargs -0 ls -l | sort -k5,5rn
Run Code Online (Sandbox Code Playgroud)

它应该打印层次结构中所有文件的列表,按大小排序。至少在我的机器上,它不是 Mac,而是其他一些 Unix。但原则上应该大致相同。

感谢 Richard Hoskins 提出的名称中带有空格的错误。这实际上是 xargs 中的一个功能。请参阅此站点该站点对其进行了很好的解释。以上版本现在应该可以工作了。

编辑

这是命令如何工作的解释:

找 。==> 从当前工作目录“.”中查找项目

-type f ==> 搜索常规文件

-print0 ==> 将完整文件名打印到标准输出,以空字符结尾,而不是换行符(这是用于通过 xargs 处理带有换行符和空格的文件名)

xargs ==> 执行命令 xargs(对标准输入中的每一行执行一个命令)

-0 ==> 行分隔符为空字符

ls -l ==> xargs 执行的命令。通过这种方式,我们可以获得详细信息,尤其是文件的大小。

排序 ==> 在标准中对行进行排序

-k5,5rn ==> 排序字段定义,从字段 5 开始(分隔符默认为空白)并在字段 5 结束。这是 ls -l 显示的大小字段。r 代表反向排序,因此最大的文件在顶部,n 代表数字排序。