在 Debian(或任意 Linux)环境下,“批量 extract 文件”通常指一次性解压多个压缩包。下面按常见场景给你几种实用方法。
.tar.gzfor f in *.tar.gz; do
tar -xzf "$f"
done
.tar.xzfor f in *.tar.xz; do
tar -xJf "$f"
done
.zipfor f in *.zip; do
unzip "$f"
done
.tar.bz2for f in *.tar.bz2; do
tar -xjf "$f"
done
如果你有混合格式,可以用 aunpack(来自 atool):
sudo apt install atool
aunpack *.tar.gz *.zip *.tar.xz
或写一个小脚本:
for f in *; do
case "$f" in
*.tar.gz|*.tgz) tar -xzf "$f" ;;
*.tar.xz) tar -xJf "$f" ;;
*.tar.bz2) tar -xjf "$f" ;;
*.zip) unzip "$f" ;;
*) echo "跳过: $f" ;;
esac
done
for f in *.tar.gz; do
d="${f%.tar.gz}"
mkdir -p "$d"
tar -xzf "$f" -C "$d"
done
find 批量解压(含子目录)find . -name "*.zip" -exec unzip {} \;
或:
find . -name "*.tar.gz" -exec tar -xzf {} \;
sudo apt install parallel
parallel tar -xzf ::: *.tar.gz
如果你说的是 extract Debian 包内容:
dpkg-deb -x package.deb target_dir
批量提取:
for deb in *.deb; do
d="${deb%.deb}"
mkdir -p "$d"
dpkg-deb -x "$deb" "$d"
done
如果你能说明:
我可以给你更精确的命令。