这是工作中遇到的,通过Shell来实现,大家一起讨论讨论:

在A目录下有N个目录,每个目录下又有N个目录……目录下有2012年、2013年的zip文件,每个zip文件不重名

通过Shell来提取2013年的相关zip文件到B目录,提取时需要把相关的目录也一并提取创建

以下是部分目录结构说明(具体相关日期此处省略,总之相关文件有2012年的也有2013年的):

114/1141/114101/F11401001/Question_F11401001.zip
114/1141/114101/F11401001/Question_F11401051.zip
114/1141/114101/F11401001/Question_F11401402.zip
115/1151/115101/S11501001/Question_S11501005.zip
115/1151/115102/S11501002/Question_S11501041.zip
115/1161/116101/D11601001/Question_D11601604.zip
115/1181/118101/D11801001/Question_D11801880.zip
.
.
.
.
需要达到的提取效果是:
比如 Question_F11401001.zip 文件是2013的

在B目录下要创建 114/1141/114101/F11401001 这些目录
再把Question_F11401001.zip文件提取到此目录下,B目录下的114/1141/114101/F11401001目录下


python

#/usr/bin/python
#coding=utf-8
import os,time
a=os.popen("find /A -name '*.*'").readlines()
for i in range(len(a)):
a=a.strip('\n')
x=os.stat(a)
y=str(time.localtime(x.st_mtime)).split(',')
z=y[0][-4:]
if z=='2013':
 b=a[:a.rfind('/')]
 c=b[len('/A'):]
 c=str(c)
 cmd='cp -r %s /B %s' %(a,c)
 os.system('mkdir -p /B %s' %c)
 os.system(cmd)