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

bash脚本tar打包指定目录 解压不保留上层完整路径的方法

原因说明

tar打包时如果传入绝对路径,会默认把完整的路径层级存入压缩包,解压时就会按存储的路径逐层生成目录。你之前在路径末尾加*的写法没用,是因为shell会把通配符展开为带完整绝对路径的文件列表,打包时还是会保留全路径层级。

可用方案

以下两种方式都能实现需求,打包出的压缩包解压后会直接在当前目录生成logs文件夹及内部所有内容,不会附带opt/data/name的上层路径:

  • 方式一:先切换到目标目录的上级路径,再执行打包
cd /opt/data/name && tar -cvf /opt/file/myFiles.tar.gz logs/
  • 方式二:用tar自带的-C参数指定打包时的工作目录,不需要手动执行cd切换路径
tar -cvf /opt/file/myFiles.tar.gz -C /opt/data/name logs/

补充提示:你当前用的命令没有加gzip压缩参数z,实际生成的是无压缩的tar归档文件,只是后缀名写成了.tar.gz。如果需要生成gzip压缩格式的包,把命令里的-cvf改成-czvf就可以了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 09:00:53