【问题标题】:How to Glob all files in a directory match如何全局匹配目录中的所有文件
【发布时间】:2013-11-04 18:50:43
【问题描述】:

我有一个统一的目录结构,有好几层。 假设客户/用户/年份/类型/文件

例如:client1/user1/2012/personal_files/file1.txt

我想做的是压缩 2011 年以来的所有文件。

本质上是 gzip */*/2011/*/*

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

谢谢

【问题讨论】:

    标签: bash unix gzip glob


    【解决方案1】:

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

    【讨论】:

    • gzip: /*/2011/*/: 没有这样的文件或目录
    • @Smartelf,你还需要shopt -s nullglob -- 这样,如果没有匹配的文件,bash 将不会逐字打印通配符表达式
    • 您的文件名是否包含空格?我刚刚更新了上面的代码来解决这个问题(通过添加引号)。
    猜你喜欢
    • 1970-01-01
    • 2014-10-01
    • 2011-01-14
    • 2011-03-07
    • 2019-01-04
    • 1970-01-01
    • 2023-03-19
    • 2013-01-07
    • 1970-01-01
    相关资源
    最近更新 更多