Linux
tar + gz 文件夾中的文件按原樣放置在所有子文件夾中
我們要 tar.gz 以下所有 jars 文件
2.6.4.0-91/spark2/jars/super-csv-2.2.0.jar 2.6.4.0-91/spark2/jars/univocity-parsers-2.2.1.jar 2.6.4.0-91/spark2/jars/validation-api-1.1.0.Final.jar 2.6.4.0-91/spark2/jars/xbean-asm5-shaded-4.4.jar 2.6.4.0-91/spark2/jars/xercesImpl-2.9.1.jar 2.6.4.0-91/spark2/jars/xmlenc-0.52.jar 2.6.4.0-91/spark2/jars/xz-1.0.jar 2.6.4.0-91/spark2/jars/zookeeper-3.4.6.2.6.4.0-91.jar
所以我做以下
cd /var/tmp tar -czvf archive.tar.gz /usr/hdp/2.6.4.0-91/spark2/jars
但是當我這樣做時
tar xvf archive.tar.gz
我們得到 usr 文件夾
usr
而預期的結果應該只是罐子(沒有子文件夾)
super-csv-2.2.0.jar univocity-parsers-2.2.1.jar validation-api-1.1.0.Final.jar xbean-asm5-shaded-4.4.jar xercesImpl-2.9.1.jar jxmlenc-0.52.jar xz-1.0.jar zookeeper-3.4.6.2.6.4.0-91.jar
我的語法有什麼問題
cd /var/tmp tar -czvf archive.tar.gz /usr/hdp/2.6.4.0-91/spark2/jars
在開始歸檔文件之前,使用
-C
選項讓 tar進入目錄:chdir
tar -czf archive.tar.gz -C /usr/hdp/2.6.4.0-91/spark2/jars .
不要忘記點作為最後一個參數
請注意,參數之後的第一個
f
參數是要將存檔輸出到的文件名,以下選項-C
將目錄名作為參數(其中 tarchdir
s to),然後點是開始存檔的目錄。
tar
儲存在命令行上傳遞的完整路徑。如果您只想要
2.6.4.0-91
目錄,請cd
在呼叫.tar
請記住,在這種情況下,您應該使用該選項指定存檔的結束位置。
-C
例如,假設您在
/home/user/
:cd /usr/hdp/ tar -czvf -C /home/user/archive.tar.gz 2.6.4.0-91/spark2/jars/