假设下面的归档文件file20150101.zip只包含一个文件file1115.txt,我将如何重命名文件内部以匹配归档文件的名称(file1115.txt到file20150101.txt)?
我尝试过使用unzip-u(很可能是因为对它应该如何工作的误解),但没有成功。

最佳答案

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

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

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

syncname file20150101.zip

如果你想变得更健壮,可以处理多个文件的zips,等等。你可以分析原始名称中的日期戳(用date)并找到与该戳匹配的.txt文件。

07-26 09:29
查看更多