使用 Linux shell 将 ZIP 转换为 TAR
问题
你有 ZIP 归档,想自动将其转换为 TAR 同时保留原始目录结构。
解决方案
使用此脚本(注释内联)。
ziptotar.sh
#!/bin/bash
# 用法:ziptotar.sh <ZIP 名称>
tmpdir=`mktemp -d`
#将 zip 复制到临时目录
cp "$1" $tmpdir/
#解压
(cd $tmpdir && unzip -q "$1")
#移除原始 zip 文件因为我们不想将其打包
rm "$tmpdir/$1"
#打包文件
outfilename=$(echo "$1" | rev | cut -d. -f2- | rev).tar
(cd $tmpdir && tar cf "$outfilename" *)
mv "$tmpdir/$outfilename" .
#移除临时目录
rm -rf $tmpdir
#打印我们做了什么
echo "Converted $1 to $outfilename"Check out similar posts by category:
Shell
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow