得之我幸 失之我命

when someone abandons you,it is him that gets loss because he lost someone who truly loves him but you just lost one who doesn’t love you.

tar 从 basename 打包

在用 tar 打包一个文件夹的时候,发现了一个问题,因为这个文件夹的层级比较深,直接 tar -czvf ./test.tar.gz /path/to/dir 以后,在用 tar xzvf ./test.tar.gz 解压的时候就发现了问题,它居然在当前目录下生成了 ./path/to/dir 文件夹来保存解压后的文件

这显然不是我要的结果,既然我从某个路径把它打包了,解压的时候自然是希望可以直接将 dir 解压在当前目录下,生成 ./dir 就可以,所以现状下应该怎么办?

这时候需要在打包的时候使用参数 -C,通过切换目录的方式解决这个问题

1
$ tar -czvf ./test.tar.gz -C /path/to dir

此外,解释下上文中使用的几个参数

  1. -c:创建包
  2. -z:创建或解压时,使用 gzip
  3. -v:显示打包或解包的过程
  4. -f:后面跟包名,用于指定生成的包名
  5. -x:解压包

对了对了,忘记说说标题了,想了挺久,都没办法准确的几个字描述完整自己遇到的问题,原来想的是,tar 打包的时候去掉深度层级,但是感觉怪怪的,后来想到 basename 是可以描述当前目录的,所以就写成了 tar 从 basename 打包,但是当我想要解释这个标题的时候,似乎又有了更好的标题 “tar 打包的时候去除上层路径”,好像不是,去除上层路径这个结果只有在解包的时候才能显现,算了,不改了,标题就这个吧

be slow to promise and quick to perform.