有没有一个简单的终端命令可以删除所有实际数据、所有文件但保留所有目录?包括作为目录的包 (.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 -f
为ls
或ls -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