有時候在做檔案傳輸時,一支檔案接著一支在傳送,顯得很麻煩,檔案太多,其實這時候真的很需要包裝與壓縮工具做一個處理。
在 Linux 中包裝與壓縮的指令非常多種,但並不是每個指令都皆有包裝與壓縮的功能。
| 壓縮名稱 | 有無包裝功能 | 有無壓縮功能 | 備註 |
|---|---|---|---|
| * tar | 有 | ||
| * gz | 有 | ||
| * tar.gz | 有 | 有 | |
| tgz | 有 | 有 | 與 tar.gz格式是相同副檔名不同而已 |
| bz | 有 | ||
| tar.bz | 有 | 有 | |
| bz2 | 有 | ||
| tar.bz2 | 有 | 有 | |
| xz | 有 | ||
| tar.xz | 有 | 有 | |
| * rar | 有 | ||
| lha | 有 | ||
| * 7z | 有 | ||
| * zip | 有 | ||
| Z | 有 |
※ * 本章列出來的項目。
常用參數
-c 建立新的包裝擋或壓縮檔-d 記錄檔的差別-f 被處理的檔名。此參數使用要立即接檔名,建議單獨使用-r 添加檔到已經壓縮的檔-t 檢視已包裝檔案或壓縮檔的的內容。(含有哪些檔案)-v 在包裝或壓縮的過程中,顯示包裝或壓縮的檔案-x 解開包裝或壓縮的檔案-z 支援 gzip 壓縮檔或解壓縮檔,建議使用副檔名 .tar.gz
※ 參數 -c 、 -t 、 -x 不能在指令中同時執行,用途分別是 建立、檢視、解開 ,只能各別執行。
其他參數
-A 新增壓縮檔到已存在的壓縮-b 設置區塊大小-C 解開包裝擋或解壓縮用來指定放置的目錄-l 檔案系統邊界設置-k 保留原有檔不覆蓋-m 保留檔不被覆蓋-N 比對日期。比此參數後面接的日期(yyyy/mm/dd)還新的才會被包裝-p 保留原始權限與屬性-P 保留絕對路徑。被包裝檔案結構含有根目錄。(不建議使用)-u 添加改變了和現有的檔到已經存在的壓縮檔-W 確認壓縮檔的正確性支援不同類型套件
-j 支援 bzip2 壓縮檔或解壓縮檔,建議使用副檔名 .tar.bz2
-J 支援 xz 壓縮或者解壓縮,建議使用副檔名 .tar.xz-z 支援 gzip 壓縮檔或解壓縮檔,建議使用副檔名 .tar.gz
-Z 支援 compress 解壓檔套件名稱:tar。
包裝
[root@localhost ~]# tar -cv -f [檔案名稱] [來源檔案]
解開包裝
[root@localhost ~]# tar -xv -f [包裝的檔案名稱].tar
套件名稱:gzip。
壓縮
[root@localhost ~]# gzip [來源檔案]
解壓縮
[root@localhost ~]# gunzip [壓縮的檔案].gz
// or
[root@localhost ~]# gzip -d [壓縮的檔案].gz
套件名稱:gzip。
壓縮指令。
兩種方式皆一樣呈現結果,只差在偷懶一點可以使用第二種參數連再一起的,但還是建議 f 參數與其他分開。
[root@localhost ~]# tar -czv -f [檔案名稱].tar.gz [來源檔案]
// or
[root@localhost ~]# tar -czvf [檔案名稱].tar.gz [來源檔案]
c 建立包裝z 壓縮v 檢視包裝壓縮過程中有哪些檔案f 指定檔案,依照比較正式的寫法是與其他參數分開加入。建立壓縮檔,但可多檔案選擇。
[root@localhost ~]# tar -czv -f [檔案名稱].tar.gz [來源檔案1] [來源檔案2] ... 來源檔案n
檢視壓縮檔內容。
[root@localhost ~]# tar -tzv -f [檔案名稱].tar.gz
t 檢視解壓縮。
[root@localhost ~]# tar -xzv -f [檔案名稱].tgz
x 解開套件名稱:rar, unrar。
a 加入壓縮檔e 解壓縮當前目錄x 解壓縮l 檢視壓縮檔案內清單壓縮
[root@localhost ~]# rar a [檔案名稱].rar [來源檔案]
解壓縮
[root@localhost ~]# rar e [壓縮的檔案].rar
// or
[root@localhost ~]# unrar e [壓縮的檔案].rar
// or
[root@localhost ~]# rar x [壓縮的檔案].rar
列出壓縮檔內的檔案清單
[root@localhost ~]# unrar l file.rar
套件名稱:p7zip-full。
a 加入壓縮檔x 解壓縮壓縮
[root@localhost ~]# 7z a [檔案名稱].7z [來源檔案]
// or
[root@localhost ~]# 7z a [檔案名稱].7z [來源檔案] -p [自訂密碼]
解壓縮
[root@localhost ~]# 7z x [壓縮的檔案].7z
套件名稱:zip。
r 遞迴壓縮
[root@localhost ~]# zip -r [檔案名稱].zip [來源檔案]
解壓縮
[root@localhost ~]# zip [壓縮的檔案].zip