删除文件夹中的所有文件而不删除目录?(OS X)

mk1*_*k12 3 macos

是否有一个简单的终端命令可以删除所有实际数据、所有文件但将所有目录保留在那里?包括包 (.app) 作为目录?

-- 您无需阅读此内容:原因在我的 iPod Touch 上,每当我通过 SSH 连接到 /private/var/mobile/Applications 以获取图标或更改主题的内容时,我都必须查看每个文件夹来查找应用程序,因为它们都在其唯一标识符文件夹中(例如 2C053638-26FE-42DD-A235-30FCBA59E623),因此无法找到它。所以我将 Applications 文件夹复制到我的桌面,这样我就可以聚焦搜索其中的应用程序名称,然后它所在的文件夹将是 iPod 上唯一的 id 文件夹,这样我就可以轻松找到它。

Dav*_*ett 10

您是只想删除当前目录中的文件,还是删除子目录中的文件?对于后者,这将在大多数类 Unix 环境下工作

find . -type f -print0 | xargs -0 rm -f
Run Code Online (Sandbox Code Playgroud)

或者,如果您知道名称中没有包含空格的文件或目录,您可以使用

find . -type f | xargs rm -f
Run Code Online (Sandbox Code Playgroud)

我不是 Apple 用户,所以我对您所说的 .app 目录知之甚少,但是您应该能够通过在 find 和 xargs 之间添加 grep 来避免接触它们,例如

find . -type f | grep -v \.app | xargs rm -f
Run Code Online (Sandbox Code Playgroud)

替换rm -flsls -l在以上所有内容中以获取将要删除的内容的列表,而不是实际执行删除。

  • OS X 有一个足够现代的 find 版本来支持“find . -type f -exec rm -rf {} +”——注意“+”而不是“\;” 在 -exec 之后。这模仿了 find 的 exec 中的 xargs 部分 (2认同)