问题描述

今天在写脚本的时候,涉及到了一个打包压缩的过程。是用tar命令来打包某文件夹并压缩。

我之前通常都会在脚本中指定文件夹的绝对路径,这样可以避免很多麻烦。但是本次执行脚本的过程中,我发现这个tar命令会报一个warning出来。

tar: Removing leading `/' from member names

这个warning并不影响最后执行的结果,但是十分影响美观。

问题原因

为了解决此问题,我简单查了一下资料。发现tar命令会默认使用相对路径,如果使用绝对路径且不加相应参数时,就会出现此error。

解决方法

其实也很简单,在tar命令的参数中加入-P参数即可。但是我们需要注意-p参数的位置,要将其放在-z和-f之间。即:

tar zcPf test.tar.gz /path/to/directory

这里的/path/to/directory可以换成你想要的绝对路径。

这样它就不会报那个错误了。

延伸

tar命令打包和解压,各常用参数的意思。

  1. -z: 对单个tar包进行压缩,只有对.gz文件进行操作时使用。如:

    #解压.gz文件
    tar zxf jdk-8u241-linux-x64.tar.gz
    #打包并压缩至.gz文件
    tar zcf jdk-8u241-linux-x64.tar.gz jdk8
    
  2. -x: 建立一个解压文件的指令

  3. -c: 建立一个压缩文件的指令

  4. -f: 添加一个参数名称,通常是参数中最后一个位置,后加参数名。

  5. -C(大写): 指定解压路径,如此路径不存在,则解压不成功。
    例如:

    tar zxf jdk-8u241-linux-x64.tar.gz -C /usr/local/pppp/
    

    假如/usr/local/pppp/文件夹不存在,此解压不会成功。

  6. -p(小写): 使用原文件的原来属性,不改变属主、权限等属性。

  7. -v: 显示详细进度,但是太多了,一般不打,除非排错。

  8. -j: 对单个tar包进行压缩,只有对.bz2文件进行操作时使用。
    使用方法类似于-z。

posted on   eryoung2  阅读(15365)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示