將文件存儲到歸檔文件中或者從歸檔文件中獲取原始文件,以及爲文件建立歸檔文件linux
tar [option] [modifiers] [file-list]shell
file-list是tar進行歸檔和提取的文件路徑名列表spa
只能使用下面的某一個選項來指定tar要執行的動做。能夠經過在選項後面跟一個或多個修飾符來改變該選項的行爲3d
-c 建立歸檔文件code
-u 將file-list中的文件添加到歸檔文件blog
-x 從歸檔文件中提取file-list並把它寫入磁盤ip
-C dir 在進行處理以前將工做目錄切換到dir指定的目錄input
-f filename 使用filename來指出要建立或從中提取的歸檔文件的文件名io
-j 在建立歸檔文件或從歸檔文件中提取文件時,使用bzip2方式來進行壓縮和解壓縮class
-z 在建立歸檔文件或從歸檔文件中提取文件時,使用gzip方式來進行壓縮和解壓縮
-v 列出tar讀或寫的每個文件
-t 列出歸檔文件中的目錄
-u 更新歸檔文件
生產場景使用案例
1 [root@linux ~]# tar -cvf /tmp/etc.tar /etc <==僅打包,不壓縮! 2 [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包後,以 gzip 壓縮 3 [root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包後,以 bzip2 壓縮 4 特別注意,在參數 f 以後的文件檔名是本身取的,咱們習慣上都用 .tar 來做爲辨識。 5 若是加 z 參數,則以 .tar.gz 或 .tgz 來表明 gzip 壓縮過的 tar file ~ 6 若是加 j 參數,則以 .tar.bz2 來做爲附檔名啊~ 7 上述指令在執行的時候,會顯示一個警告訊息: 8 『tar: Removing leading `/' from member names』那是關於絕對路徑的特殊設定。
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz 由於咱們使用 gzip 壓縮,因此要查閱該 tar file 內的文件時, 就得要加上 z 這個參數了!這很重要的!
[root@linux ~]# cd /usr/local/src [root@linux src]# tar -zxvf /tmp/etc.tar.gz 在預設的狀況下,咱們能夠將壓縮檔在任何地方解開的!以這個範例來講, 我先將工做目錄變換到 /usr/local/src 底下,而且解開 /tmp/etc.tar.gz , 則解開的目錄會在 /usr/local/src/etc 呢!另外,若是您進入 /usr/local/src/etc 則會發現,該目錄下的文件屬性與 /etc/ 可能會有所不一樣喔!
[root@linux ~]# cd /tmp [root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd 我能夠透過 tar -ztvf 來查閱 tarfile 內的文件名稱,若是單隻要一個文件,ç 就能夠透過這個方式來下達!注意到! etc.tar.gz 內的根目錄 / 是被拿掉了!
[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc 這個 -p 的屬性是很重要的,尤爲是當您要保留本來文件的屬性時!
[root@linux ~]# tar -N '2005/06/01' -zcvf home.tar.gz /home
[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
1 [root@linux ~]# cd /tmp 2 3 [root@linux tmp]# tar -cvf - /etc | tar -xvf – 4 5 這個動做有點像是 cp -r /etc /tmp 啦~依舊是有其有用途的! 6 7 要注意的地方在於輸出檔變成 - 而輸入檔也變成 - ,又有一個 | 存在~ 8 9 這分別表明 standard output, standard input 與管線命令啦! 10 11 這部分咱們會在 Bash shell 時,再次提到這個指令跟你們再解釋囉!
1.tar只用來打包,但不壓縮包,bzip2和gzip只能用來壓縮單文件但沒法打包壓縮
2.tar -jcvf 和 tar -zcvf 解決了上面的問題