如何使用rm以递归方式删除以前缀开头的所有dirs

时间:2012-11-17 01:24:15

标签: android shell adb

如何删除以前缀开头的所有目录,所以我有类似的东西

  • xyzdirblah
  • xyzdir2
  • xyzdir3
  • xyzdir4
  • ..更多

想通过adb shell,android

2 个答案:

答案 0 :(得分:3)

这是正确的命令:

rm -r xyzdir*

Jonathan的回答不起作用,因为adb无法识别-f切换。


编辑:我认为这不是问题的关键所在,但是如果你想要备用名为xyzdir*的文件,那么在没有-f的情况下使用Jonathan的命令:

for i in xyzdir*; do [ -d $i ] && rm -r $i; done

答案 1 :(得分:1)

rm -rf xyzdir*

rm是删除内容的命令。

-r表示递归删除目录。 -f表示不提问题,也不抱怨。 -rf意味着这两件事。

xyzdir*扩展为以“xyzdir”开头的文件名(包括目录名,因为在类Unix系统中 - 包括Android - 目录实际上只是一种特殊的文件。)

如果存在具有相同前缀的非目录文件,例如“不想要删除,则必须更加小心:

for i in xyzdir*; do [ -d $i ] && rm -rf $i; done

这会循环遍历名称以“xyzdir”(for i in部分)开头的每个文件或目录,检查它是否是目录([ -d $i ]部分),如果是的话(如果是) &&部分),递归删除它(rm -rf $i部分)。