Linux壓縮打包tar
文件後綴名說明
.gz 以gzip壓縮的壓縮包。
.bz2 以bzip2壓縮的壓縮包。
.tar 以tar打包的文件,並沒有壓縮。
.tar.gz 經過tar打包,並經過gzip壓縮。
.tar.bz2 經過tar打包,並經過bzip2壓縮。
gzip 壓縮
gzip [-cdtv#] [name]
-c:將壓縮的數據輸出到屏幕上,可透過數據流重定向寫入文件。
-d:解壓縮。
-t :檢查數據完整性。
-v:顯示源文件和壓縮文件的壓縮比等信息。
-#:壓縮等級。
例子 壓縮:
Linux代碼
$ gzip testfile.txt
默認情況下,壓縮成後綴為.gz的文件,並刪除原文件。
例子 解壓縮:
Linux代碼
$ gzip -d testfile.txt.gz
同理,解壓縮會生成原來文件,並刪除後綴.gz文件。
例子 壓縮並保留源文件:
Linux代碼
$ gzip -c testfile.txt > testfile.txt.gz
利用重定向,將壓縮以後的數據寫入到指定文件中。
bzip2 壓縮
bzip2 [-cdkzv#] [name]
-c:將壓縮或解壓縮的數據輸出到標准輸出中。標准輸出一般指屏幕。
-d:解壓縮。
-k:保留原文件,不會自動刪除原始文件。
-z:壓縮。
-v:顯示原文件和壓縮文件的壓縮比等信息。
-#:壓縮等級。
例子 壓縮:
Linux代碼
$ bzip2 -z testfile.txt
testfile.txt文件會壓縮成testfile.txt.bz2文件。
例子 解壓縮:
Linux代碼
$ bzip2 -d testfile.txt.bz2
testfile.txt.bz2文件會解壓縮成testfile.txt文件。
例子 壓縮成特定名字的文件:
Linux代碼
$ bzip2 -c testfile.txt > testfile.txt.bz2
gzip和bzip2主要用於對單一文件進行壓縮。即使對目錄壓縮,也是將目錄中的所有文件分別進行壓縮。
tar 打包
tar [-c|-x|-t] [-j|-z] [-v] [-f filename] [pathname]
-c:建立打包文件。
-r:追加文件到打包文件的末尾。
-u:只更新較新的文件到打包文件。
-t:列出打包文件的內容。
-x:解打包或解壓縮。
-j:通過bzip2進行壓縮或解壓縮。
-z:通過gzip進行壓縮或解壓縮。
-v:顯示處理過程。
-p:保留備份文件的原本權限。常用於備份配置文件等。
-P:保留絕對路徑。允許備份文件含有根目錄。
--exclude=PATTERN:打包時不包含指定的文件。
-f filename:filename代表要處理的打包文件。
-C DIR:解壓特定的路徑。
pathname:要被壓縮的文件或路徑名稱。
注:-f filename最好單獨放在一起。 否則"tar -zcfv filename"會將v當作包名。
例子 打包並壓縮:
Linux代碼
$ tar -<span style="font-size: 1em; line-height: 1.5;">c</span><span style="font-size: 1em; line-height: 1.5;">jv -f ~/testpath.tar.bz2 ~/testpath</span>
Linux代碼
$ tar -czv -f ~/testpath.tar.gz ~/testpath
分別用2種壓縮方式,打包並壓縮成2個文件。
例子 解壓縮並解包:
Linux代碼
$ tar -xjv -f ~/testpath.tar.bz2
$ tar -xzv -f ~/testpath.tar.gz
這2種解包方式,會在當前路徑下進行。
Linux代碼
$ tar -xjv -f ~/testpath.tar.bz2 -C /tmp
$ tar -xzv -f ~/testpath.tar.gz -C /tmp
這2種解包方式,會在指定路徑下/tmp下進行。
例子 查看包中的文件:
Linux代碼
$ tar -tjv -f ~/testpath.tar.bz2
$ tar -tzv -f ~/testpath.tar.gz