无法切换工作目录时如何创建仅含目标目录本身的tar.gz包
解决方案
使用tar命令内置的-C参数即可在不切换当前shell工作目录的前提下,实现仅打包目标目录、不带上层路径结构的需求,执行以下命令即可:
tar -czf /opt/myuser/userContents/jdk-17-linux-x64.tar.gz -C /opt/myuser/userContents JDK-17
参数说明
-C <目录路径>:tar执行打包操作时会临时切换到该指定目录处理后续的文件参数,该操作仅作用于tar进程本身,不会修改当前shell的工作目录- 命令中
-C /opt/myuser/userContents之后跟的JDK-17是相对于该临时目录的目标,因此打包时只会将JDK-17目录本身写入压缩包,不会携带上层的/opt/myuser/userContents路径
结果验证
你可以执行以下命令查看压缩包内的文件结构,确认是否符合要求:
tar -tf /opt/myuser/userContents/jdk-17-linux-x64.tar.gz
正常输出的路径均以JDK-17/开头,无上层目录结构。
内容的提问来源于stack exchange,提问作者user8473984
相关产品推荐
相关产品推荐

