bash:使用解压缩来更改存档中的文件名

时间:2015-03-19 15:58:40

标签: linux bash zip unzip

鉴于以下归档文件20150101.zip,其中只包含一个文件file1115.txt,我将如何重命名文件内部以匹配归档的名称(file1115.txt到file20150101.txt)?

我尝试使用unzip -u失败了(很可能是因为误解了它应该如何工作)。

1 个答案:

答案 0 :(得分:1)

我怀疑你可以直接这样做。您可能需要重新创建zip存档。

syncname() {
    zip=$1
    bare=${1%.zip}
    new=$bare.txt

    unzip "$zip"
    mv file*.txt "$new"
    rm "$zip"
    zip "$zip" "$new"
}

syncname file20150101.zip

如果您想要更强大,处理具有多个文件的拉链等,您可以使用原始名称解析日期戳(使用date)并找到匹配的.txt文件那个邮票。