有時候在做檔案傳輸時,一支檔案接著一支在傳送,顯得很麻煩,檔案太多,其實這時候真的很需要包裝與壓縮工具做一個處理。
在 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