[d]python 反向删除文件夹和文件解决方案

[d]python 反向删除文件夹和文件
本帖最后由 fibbery 于 2012-07-29 15:03:18 编辑
A目录下 有dira ,dirb,dirc,dird,dire 。。。。。。n个子目录,现在我想保留dria和dirb,删除其余目录。

我用命令find  maxdepth 1  -type d  \! \(-name "dira" -o -name "dirb"\) -exec rm -rf {} \; 
为什么不行呢?
哪位大神指点下,谢谢


--------------------------
Double行动:
原帖分数:40
帖子加分:40

------解决方案--------------------
在local下执行:ls system
------解决方案--------------------
grep -v bin 
------解决方案--------------------
xargs rm -rf 命令,实际上这样执行的:
ls system
------解决方案--------------------
grep -v bin 的结果是:etc usr
之后rm -fr etc usr,当然删不掉,因为etc和usr实际上是在system目录下,local目录下没有这2个文件夹。
------解决方案--------------------
#========================================================
#              author:ago                                
#              2012/08/24 15:13:08                  
#========================================================
import os
import shutil

root_dir = './root/'
for roots,dirs,files in os.walk(root_dir):
for dir in dirs:
if dir=='dira' or dir=='dirb':
print dir
else:
shutil.rmtree(root_dir+dir) 

------解决方案--------------------
rm -fr dir[^ab]

另外,如果文件名不规则,我常用的办法是把要保留的文件(夹)mv到同一个文件系统(很重要,可避免cp不必要的数据)的另一个目录底下,然后把其他的删掉("rm -fr *"),再把要保留的mv回来。