LinuxMastery By asdlkfj

LinuxMastery 13: 壓縮與打包 tar, gzip

Linux 上的 WinRAR

在 Linux 傳輸檔案或備份時,我們通常會先「打包 (Archive)」再「壓縮 (Compress)」。最常用的工具是 tar。雖然還有 zip/unzip,但在 Linux 原生環境中,tarball (.tar.gz) 才是標準。

核心指令詳解

  1. tar (tape archive)

    • 口訣
      • 打包壓縮 (Create)tar -czvf
      • 解壓縮 (Extract)tar -xzvf
    • 參數解析
      • -c:建立 (Create)
      • -x:解開 (Extract)
      • -z:使用 gzip 壓縮 (產生 .tar.gz)
      • -v:顯示過程 (Verbose)
      • -f:指定檔名 (File),這個參數必須放在最後,後面接檔名。
  2. 實戰範例

    • 壓縮:將 website 資料夾打包成 backup.tar.gz
      tar -czvf backup.tar.gz website/
      
    • 解壓縮:將 backup.tar.gz 解開到當前目錄
      tar -xzvf backup.tar.gz
      
    • 解壓到指定目錄:使用 -C 參數
      tar -xzvf backup.tar.gz -C /tmp
      

實戰心法

有時候你會看到 .tar.bz2.tar.xz 的檔案,這些使用了不同的壓縮演算法 (bzip2, xz),壓縮率通常比 gzip 好,但速度較慢。對於這些檔案,只要把參數 -z 換成 -j (bzip2) 或 -J (xz) 即可。不過現代的 tar 很聰明,通常不加壓縮參數,直接 tar -xvf filename.tar.xz,它也能自動識別格式並解壓。