1. 程式人生 > 其它 >linux中常用的壓縮檔案指令

linux中常用的壓縮檔案指令

記錄 linux 下常用的壓縮檔案解壓指令

持續更新 ......


1. tar 指令

Examples:

  • tar -cf archive.tar foo bar (對檔案 foo 和 bar 壓縮,建立 archive.tar 壓縮包)
  • tar -tvf archive.tar (列出壓縮包中的所有檔案)
  • tar -xf archive.tar (解壓出 archive.tar 中的所有檔案)
  • tar -xvf filename.tar (解壓 filename.tar 並 列出壓縮包中的所有檔案)
  • tar -zxvf filename.tar.gz
  • tar -zxvf filename.tgz

主操作模式:

  -A, --catenate, --concatenate   追加 tar 檔案至歸檔
  -c, --create               建立一個新歸檔
      --delete               從歸檔(非磁帶!)中刪除
  -d, --diff, --compare      找出歸檔和檔案系統的差異
  -r, --append               追加檔案至歸檔結尾
      --test-label           測試歸檔卷標並退出
  -t, --list                 列出歸檔內容
  -u, --update               僅追加比歸檔中副本更新的檔案
  -x, --extract, --get       從歸檔中解出檔案

其他常用:

  -v, --verbose              詳細地列出處理的檔案,顯示所有過程
  -f, --file=ARCHIVE         使用歸檔檔案或 ARCHIVE 裝置
                             切記,這個引數是最後一個引數,後面只能接檔案名
                             必選
  -z, --gzip, --gunzip, --ungzip   通過 gzip 過濾歸檔
  -j, --bzip2                通過 bzip2 過濾歸檔
  -Z, --compress, --uncompress   通過 compress 過濾歸檔

壓縮並分片:

大檔案拆分:先壓縮,再拆分成指定大小

# 壓縮
tar -zcvf filename.tar.gz filenam

# 切分
split -b 4000M -d -a 1 filename.tar.gz filename.tar.gz.
cat filename.tar.gz ' split -b 4000M -d -a 1 filename.tar.gz.

切分的引數說明:

-b 4000M 表示設定每個分割包的大小,單位還是可以k
-d 引數指定生成的分割包字尾為數字的形式
-a x來設定序列的長度(預設值是2),這裡設定序列的長度為1

將切分的檔案合併:

tar -zcvf filename.tar.gz filename ' split -b 4000M -d -a 1 -filename.tar.gz.

多個壓縮檔案解壓方法:

cat filename.tar.gz.* ' tar -zxv

2. rar unrar 指令

Examples:

  • unrar e filename.rar # 解壓到當前目錄
  • unrar x filename.rar /path/to/extract

3. zip unzip 指令

Examples:

  • zip filename.zip filename (壓縮 filename)
  • zip -r location.zip location (遞迴壓縮目錄 location)
  • unzip filename.zip -d filepath (解壓縮)

常用:

- 壓縮:
# 指令
zip passwd.zip /etc/passwd

# 輸出
adding: etc/passwd (deflated 58%)

輸出中,58% 表示壓縮率,即壓縮後的檔案大小為原始檔的 42%

- 加密壓縮:
# 指令
zip -e passwd.zip /etc/passwd

# 輸出
Enter password: 
Verify password: 
  adding: etc/passwd (deflated 58%)
- 遞迴壓縮
# 指令
zip -r shell.zip shell

# 輸出
adding: shell/ (stored 0%)
adding: shell/sleepParent.sh (stored 0%)
adding: shell/sleep.sh (deflated 22%)
adding: shell/dir/ (stored 0%)
adding: shell/dir/test.sh (stored 0%)

參考:
https://blog.csdn.net/K346K346/article/details/103230736
https://blog.csdn.net/zong596568821xp/article/details/106024351