【问题标题】:Find files with a string in filename and unzip查找文件名中带有字符串的文件并解压缩
【发布时间】:2019-10-12 14:59:20
【问题描述】:

我有一个完整的压缩文件文件夹。使用 linux 终端,我需要在 zip 文件名中查找具有特定字符串的文件,然后仅将它们解压缩到另一个文件夹。我尝试了以下但没有运气。

find /some_folder/ -name "*[temperature]*.zip" | parallel unzip '/some_folder/unzippedfiles/'

首先,模式不匹配,其次,我不确定输出是否可以重定向到另一个文件夹。有人可以建议修复吗?感谢提前

【问题讨论】:

    标签: linux terminal find unzip gnu-parallel


    【解决方案1】:

    /some_folder/必须是绝对路径:

    find /some_folder/ -name "*temperature*.zip" |
      parallel 'mkdir -p /some_folder/unzippedfiles/; cd /some_folder/unzippedfiles/ && unzip'
    

    【讨论】:

    • 我接受了你的回答。但是,它假设我已经手动创建了“unzippedfiles”子文件夹。
    • 我已经改了答案,所以你不需要手动创建目录。
    【解决方案2】:

    在文件名中查找模式并解压缩到新文件夹

    find /some_folder/ -name "*temperature*.zip" |
        parallel "mkdir -p {//}/unzippedfiles && cd {//}/unzippedfiles && unzip -q {}"
    

    忽略具有模式文件名的文件并解压缩到新文件夹

    find /some_folder/ ! -name "*temperature*.zip" |
        parallel "mkdir -p {//}/unzippedfiles && cd {//}/unzippedfiles && unzip -q {}"
    
    mkdir -p --> Creates a folder if it does not exist
    -q --> quiet mode 
    {//} --> mydir/mysubdir (In this case, it is /some_folder)
    

    【讨论】:

      猜你喜欢
      • 2020-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      • 1970-01-01
      • 2020-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多