目的:要把一个文件内包括子文件夹内所有.svn文件删除
执行:本来以为要写一个脚本来执行,实现这个功能的。网上一找资源,可以在终端直接执行。 由于本人对脚本陌生,对终端接触也不多。所以如此简单的操作也搞得到处找资料
在删除.svn文件过程中,很顺利, -type d -name ".svn"|xargs rm -rf 。然后我还要删除后缀为.plsit.gz 的文件, -type d -name ".plist.gz"|xargs rm -rf ,结果是没用的。我总结的是,本来.svn就是一个文件的名字了,不是一个后缀。所以找到并作操作没问题
网上有资料介绍如下:
第一步:
拿root权限
sudo -i
第二步
进入相应文件的最外层
cd (
拖拽文件夹
)
第三步
查找某个类型的文件
会查找子文件夹的子文件夹
find . -name .svn
第四步
查找出然后删除
find . -name .svn -exec rm -rf {} \;
第五步
执行第三步进行确认删除干净
在第三步,卡住了,怎么要找不到我要找的文件类型。找来找去,试来试去。最后用指令:find . -name "*.plist.gz" 找到了文件列表,但各种find . -type d -iname ".gz" -exec rm -rf {} \ 或 rm -rf `find . -type d -name .gz` 都行不通。 最后从一些脚本语法上灵感一现。用rm -rf */*.plist.gz 可以删除 , *代表的东西不用解释了,但这个方法没有递归的处理,也就是子文件夹内还是没办法处理,最后只能AppletekiMacBook-Air:Desktop root# rm -rf */*.plist.gz
AppletekiMacBook-Air:Desktop root# rm -rf */*/*.plist.gz
AppletekiMacBook-Air:Desktop root# rm -rf */*/*/*.plist.gz
AppletekiMacBook-Air:Desktop root# rm -rf */*/*/*/*.plist.gz
AppletekiMacBook-Air:Desktop root# rm -rf */*/*/*/*/*.plist.gz
AppletekiMacBook-Air:Desktop root# rm -rf */*/*/*/*/*/*.plist.gz
解决这个蛋疼的问题了。
希望懂的兄弟可以留个方法。