如何在 Mac OS X 中删除空文件夹?

Msq*_*red 34 macos

我想删除外部磁盘上的所有空文件夹。我怎样才能做到这一点?

slh*_*hck 52

首先请注意,通常不需要删除空目录。某些服务或应用程序甚至可能需要某些目录才能存在。注意你在做什么。

find从 Terminal.app 运行时,您可以使用 列出空文件夹:

find . -type d -empty
Run Code Online (Sandbox Code Playgroud)

默认情况下列出find文件和文件夹,但在这里,-type d将其限制为目录,并且该-empty选项仅显示空目录。这将递归从您的主目录(或简称,)降序的所有文件夹。要将其扩展到整个文件系统,请使用:/Users/your-username/~

find / -type d -empty
Run Code Online (Sandbox Code Playgroud)

在这里,/表示 Mac OS X 文件系统的根。您当然也可以使用任何其他起点,例如您的外部磁盘安装在;/Volumes/your-disk-name

find /Volumes/your-disk-name -type d -empty
Run Code Online (Sandbox Code Playgroud)

现在,如果您想删除任何find输出,只需 append -delete,如下所示:

find . -type d -empty -delete
Run Code Online (Sandbox Code Playgroud)

注意:这不会要求确认。它会删除所有可以删除的目录,即您有权删除的目录。它们不会被移动到垃圾桶,而是永远消失。如果您想在删除之前被询问,请将命令更改为如下所示:

find . -type d -empty -exec rm -ri '{}' \;
Run Code Online (Sandbox Code Playgroud)

  • 虽然这有效,但它可能无法定位仅包含隐藏 .DS_Store 文件的文件夹,使它们在技术上非空但对用户来说是空的。如果用户想要查找_看起来_为空的所有文件夹,他曾经在 Finder 中打开的文件夹将不会以这种方式被找到,因为 Finder 会添加一个 .DS_Store 文件。 (6认同)
  • 因此,我们可能需要分两步进行:首先删除 .DS_Store 文件(可以使用“find”以与上面类似的方式完成),然后使用建议的命令删除剩余的空目录。 (2认同)

Sup*_*pel 6

我制作了一个小而免费的程序,可以更好地解决这个问题:

http://www.macupdate.com/app/mac/52551/find-empty-folders

该程序的优点是它还可以找到明显为空但包含不可见“.DS_Store”文件的文件夹。

它还可以让您立即将找到的项目移至废纸篓。