我认为问题在于,当我在解压缩之前连接 zip 文件时,它们的顺序不正确,因为 zip 仅使用一个前导零。对于少于 100 个文件,以下方法有效。
cat myzip.z* > cat_myzip.zip
unzip cat_myzip.zip
有没有办法为 cat 正确排序文件而不重命名它们,或者以其他方式解压缩拆分存档?
如果你有一个中等的解压程序,你可以只指定第一个文件,它会在需要时自动切换到下一部分:
7z x myzip.z00
如果拆分不是以标准方式完成的(
zipsplit
),您可以使用sort -V
(“版本”排序)对文件进行排序:
find . -type f -maxdepth 1 -name 'myzip.z[0-9]*' -print0 |
sort -V -z |
xargs -0 cat > myzip-combined.zip
unzip myzip-combined.zip
如果您使用的是 Bash,则可以使用大括号扩展指定文件名: (假设文件名为
myzip.z01
、...、myzip.z99
、myzip.z100
等
cat myzip.z{01..250} > myzip-combined.zip
unzip myzip-combined.zip