首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

[d]python 反向剔除文件夹和文件

2012-09-19 
[d]python 反向删除文件夹和文件A目录下 有dira ,dirb,dirc,dird,dire 。。。。。。n个子目录,现在我想保留dria

[d]python 反向删除文件夹和文件
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个文件夹。
[解决办法]

C/C++ code
#========================================================#              author:ago                                #              2012/08/24 15:13:08                  #========================================================import osimport shutilroot_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回来。

热点排行