在 Debian 系统中,“extract” 通常指解压软件包(.deb)或解压归档文件(tar.gz/zip 等)。下面分别说明批量操作的方法。
.deb 本质是一个 ar 归档,里面包含 control.tar.* 和 data.tar.*。
dpkg-deb(推荐)mkdir -p extracted
for deb in *.deb; do
echo "Extracting $deb"
dpkg-deb -x "$deb" "extracted/${deb%.deb}"
done
只解压数据部分(/usr, /etc 等):
dpkg-deb -x package.deb target_dir
解压全部(含控制信息):
dpkg-deb -R package.deb target_dir
ar + tarfor deb in *.deb; do
mkdir -p "${deb%.deb}"
ar x "$deb" --output "${deb%.deb}"
cd "${deb%.deb}"
tar -xf data.tar.*
cd ..
done
for f in *.tar.*; do
mkdir -p "${f%.tar.*}"
tar -xf "$f" -C "${f%.tar.*}"
done
for z in *.zip; do
unzip "$z" -d "${z%.zip}"
done
for f in *; do
case "$f" in
*.deb) dpkg-deb -x "$f" "${f%.deb}" ;;
*.tar.gz|*.tgz) tar -xzf "$f" ;;
*.tar.xz) tar -xJf "$f" ;;
*.zip) unzip "$f" ;;
esac
done
parallel dpkg-deb -x {} '{.}' ::: *.deb
dpkg-dev, unzip, xz-utilsdpkg-deb -R 保留元数据如果你指的是从 Debian 源码包 / ISO / 特定目录提取文件,可以告诉我具体场景。