產生測試資料
cd /tmp mkdir 11/22/33 -p touch 11/f1 touch 11/22/f2 touch 11/22/33/f3
目錄結構
tree tmp tmp └── 11 ├── 22 │ ├── 33 │ │ └── f3 │ └── f2 └── f1
壓縮
一般來說我們會使用zcf
指定tar
完成後再gzip
,我們看看2個指令的差別
指令1
tar -zcf b1.tar.gz tmp/
指令2
cd tmp tar -zcf ../b2.tar.gz .
壓縮完成後看一下目錄結構
tar tzf b1.tar.gz tmp/ tmp/11/ tmp/11/f1 tmp/11/22/ tmp/11/22/f2 tmp/11/22/33/ tmp/11/22/33/f3
tar tzf b2.tar.gz ./ ./11/ ./11/f1 ./11/22/ ./11/22/f2 ./11/22/33/ ./11/22/33/f3
上面看到雖然壓縮的內容一樣,但會因指定路徑的關系造成目錄結構的不同,那如果想要消除最上層的目錄結構像b2.tar.gz
的內容是不是就要切到當前目錄進行壓縮才行?這答案當然是不需要的,參數上面只要再加上-C(--directory)
指定目錄路徑就能像你自行切到當前目錄一樣的效果
-C (–directory)
如果要保持b2.tar.gz
的結構,在參數上面將原本要cd tmp/
的指定換成-C tmp/
目錄加上,
tar -zcf b3.tar.gz -C tmp/ .
壓縮好後看一下結構:
tar tzf b3.tar.gz ./ ./11/ ./11/f1 ./11/22/ ./11/22/f2 ./11/22/33/ ./11/22/33/f3
參考資料
The post 2022-12-27 tar 去掉路徑結構 appeared first on 可丁丹尼 @ 一路往前走2.0.