zoukankan      html  css  js  c++  java
  • linux 解决tar命令的"tar: Removing leading `/' from member names"问题

    问题描述

    今天在写脚本的时候,涉及到了一个打包压缩的过程。是用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。

  • 相关阅读:
    数学(1.费马定理 2.扩展欧几里德算法 3.莫比乌斯反演)
    hdu 3068 最长回文(manacher入门)
    hdu 2594 Simpsons’ Hidden Talents(KMP入门)
    hdu 1671&& poj 3630 (trie 树应用)
    hdu 1251 统计难题(trie树入门)
    poj 2001 Shortest Prefixes(字典树trie 动态分配内存)
    poj 2406 Power Strings(KMP入门,next函数理解)
    hdu 2087剪花布条 (KMP入门 子串出现的次数和子串个数)
    python-操作json
    测试用例-错误推断法
  • 原文地址:https://www.cnblogs.com/young233/p/12666768.html
Copyright © 2011-2022 走看看