iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
2
Software Development

如何使用 Linux 從土裡到冒出頭來系列 第 16

Day 16 包裝與壓縮檔案

  • 分享至 

  • xImage
  •  

Day 16 包裝與壓縮檔案

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

在 Linux 中包裝與壓縮的指令非常多種,但並不是每個指令都皆有包裝與壓縮的功能。

包裝與壓縮格式列表

壓縮名稱 有無包裝功能 有無壓縮功能 備註
* tar
* gz
* tar.gz
tgz 與 tar.gz格式是相同副檔名不同而已
bz
tar.bz
bz2
tar.bz2
xz
tar.xz
* rar
lha
* 7z
* zip

* 本章列出來的項目。

包裝與壓縮

常用參數

  • -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【可包裝、無壓縮】

套件名稱:tar。

包裝

[root@localhost ~]# tar -cv -f [檔案名稱] [來源檔案]

解開包裝

[root@localhost ~]# tar -xv -f [包裝的檔案名稱].tar

gz 【無包裝、可壓縮】

套件名稱:gzip。

壓縮

[root@localhost ~]# gzip [來源檔案]

解壓縮

[root@localhost ~]# gunzip [壓縮的檔案].gz

// or

[root@localhost ~]# gzip -d [壓縮的檔案].gz

tar.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【無包裝、可壓縮】

套件名稱: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

7z 【無包裝、可壓縮】

套件名稱:p7zip-full。

  • a 加入壓縮檔
  • x 解壓縮

壓縮

[root@localhost ~]# 7z a [檔案名稱].7z [來源檔案]

// or

[root@localhost ~]# 7z a [檔案名稱].7z [來源檔案] -p [自訂密碼]

解壓縮

[root@localhost ~]# 7z x [壓縮的檔案].7z

zip 【無包裝、可壓縮】

套件名稱:zip。

  • r 遞迴

壓縮

[root@localhost ~]# zip -r [檔案名稱].zip [來源檔案]

解壓縮

[root@localhost ~]# zip [壓縮的檔案].zip

上一篇
Day 15 程序管理(2)
下一篇
Day 17 套件管理
系列文
如何使用 Linux 從土裡到冒出頭來30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言