2013-11-04 77 views
0

所有文件都有一个统一的目录结构好几层。 比方说客户端/用户/年/类型/文件我如何通配目录中匹配

例如:客户端1/USER1/2012/personal_files/FILE1.TXT

我想要做的是从2011年

实质上压缩所有文件gzip的*/*/2011/*/*

这似乎是它应该是很容易做到的,但我似乎无法弄清楚如何。我总是可以编写嵌套for循环,但没有更好的方法吗?

感谢

回答

2

尝试:for F in */*/2011/*/* ; do gzip "$F" ; done

+0

的gzip:*/*/2011/*/*:没有这样的文件或目录 – Smartelf

+0

@Smartelf,你还需要'禁用了javascript -s nullglob' - 这样如果没有文件匹配,bash将无法打印通配符表达逐字 –

+0

做你的文件名包含空格?我只是更新了上面的代码来解释(通过添加引号)。 – twm