You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用tar与pigz单独将各子文件夹压缩为tar.gz文件?

子目录独立打包为tar.gz(使用tar+pigz)

首先确认你的环境已经安装pigz工具,主流发行版可以直接通过包管理器安装,比如Debian/Ubuntu执行apt install pigz,CentOS/RHEL执行yum install pigz。

基础命令(仅打包一级可见子目录)

先切换到你的目标根目录下,执行以下命令即可遍历所有一级子文件夹,分别生成对应的文件夹名.tar.gz压缩包:

for dir in */; do tar -I pigz -cf "${dir%/}.tar.gz" "$dir"; done

参数说明:

  • -I pigz:指定tar调用多线程压缩工具pigz执行gzip压缩,相比默认单线程gzip可大幅提升压缩速度
  • ${dir%/}:去除变量dir末尾的路径分隔符,避免生成的压缩包名携带多余斜杠
  • -c:创建新的归档文件
  • -f:指定输出的压缩包文件名

如果需要打包包含.开头的隐藏子目录,先执行以下命令开启bash的dotglob选项后再运行上述打包命令:
shopt -s dotglob

无需切换目录的写法

如果不想提前切换到目标根目录,可以直接指定目标路径:

target_dir="/你的/目标/根目录路径"
for dir in "$target_dir"/*/; do
  dir_name=$(basename "$dir")
  tar -I pigz -cf "$target_dir/${dir_name}.tar.gz" -C "$target_dir" "$dir_name"
done

其中-C "$target_dir"的作用是切换到目标根目录后再执行打包,避免压缩包内的文件携带冗余的绝对路径层级。

常用自定义调整

  • 调整压缩等级:pigz支持1(最快速度,压缩率最低)到9(最高压缩率,速度最慢)的等级,默认等级为6,需要调整时修改-I参数即可,例:-I 'pigz -9'
  • 保留文件权限与属性:给tar命令添加-p参数,即可完整保留原文件的权限、所有者、软链接等属性
  • 排除指定文件:添加--exclude参数过滤不需要打包的内容,例:排除所有.log后缀文件可写为tar -I pigz -cf xxx.tar.gz --exclude='*.log' xxx/

压缩包校验

打包完成后可执行以下命令查看压缩包内的文件结构,确认打包结果正确:
tar -I pigz -tf 待检查的压缩包名.tar.gz

内容的提问来源于stack exchange,提问作者bnqtoan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 23:36:07