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

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

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

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

答案1

您是否只想删除当前目录中的文件,还是也删除子目录中的文件?对于后者,这在大多数类 unix 环境中都有效

find . -type f -print0 | xargs -0 rm -f

或者如果你知道文件或目录的名称中没有空格,你可以使用以下方法简化一点:

find . -type f | xargs rm -f

我不是 Apple 用户,因此对你所说的 .app 目录了解不多,但你应该能够通过在 find 和 xargs 之间添加 grep 来避免接触它们,例如

find . -type f | grep -v \.app | xargs rm -f

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

答案2

查找也可以删除:

$ find . -type f -exec rm {} \;

小心:此命令意味着真的要删除从当前目录开始的所有文件,而无需询问。

答案3

打开终端应用程序

(1)cd {iTouch内容的路径}

  for example:  cd /Users/Mike/Desktop/myTouch

(2)然后递归遍历目录并删除内容。

  find {directory} -type f | tee output

  for i in `grep -v .app output`
  do
   echo ${i}; rm ${i}
  done

例如,

find /Users/Mike/Documents/myTouch/ -type f | tee output

for file in `grep -v .app output`
do
 echo ${file}
 rm ${file}
done

相关内容