Bash 如何在目录匹配中全局化所有文件
我有一个统一的目录结构,有好几层。 比如说客户/用户/年份/类型/文件 例如:client1/user1/2012/personal_files/file1.txt 我想做的是压缩2011年的所有文件 本质上是gzip*/*/2011/*/* 这似乎应该很容易做到,但我似乎不知道怎么做。我总是可以编写嵌套for循环,但是没有更好的方法吗Bash 如何在目录匹配中全局化所有文件,bash,unix,gzip,glob,Bash,Unix,Gzip,Glob,我有一个统一的目录结构,有好几层。 比如说客户/用户/年份/类型/文件 例如:client1/user1/2012/personal_files/file1.txt 我想做的是压缩2011年的所有文件 本质上是gzip*/*/2011/*/* 这似乎应该很容易做到,但我似乎不知道怎么做。我总是可以编写嵌套for循环,但是没有更好的方法吗 感谢尝试:在*/*/2011/*/*中获得F;做gzip“$F”;完成gzip:/*/2011/*/:无此类文件或directory@Smartelf,您还需要
感谢尝试:
在*/*/2011/*/*中获得F;做gzip“$F”;完成
gzip:/*/2011/*/:无此类文件或directory@Smartelf,您还需要shopt-s nullglob
——这样,如果没有匹配的文件,bash将不会逐字打印通配符表达式。您的文件名是否包含空格?我刚刚更新了上面的代码来解释这一点(通过添加引号)。