Linux 高壓縮率工具 XZ 壓縮詳解

1、XZ 基礎信息

XZ 壓縮比比較高,在這裏沒有進行詳細對比。shell

官網連接: https://tukaani.org/xz/多線程

官網介紹到: 壓縮後的文件大小 gzip 小30%,比bzip2小15%。測試

我測試 一個 112M 的文件,xz 壓縮完後 4.5M, gz 壓縮完後 16M, biz2 縮完後7.6M.
壓縮比: xz >biz2 > gzip線程

2、安裝

yum install epel-release
yum  install  xz

3、詳解

3.一、經常使用的參數

默認壓縮後的文件後綴爲 xzcode

-z  強制執行壓縮, 默認不保留源文件。壓縮後的文件名爲源文件.xz
-d  強制執行解壓縮
-l  列出壓縮文件的信息
-k  保留源文件不要刪除
-f  強制覆蓋輸出文件和壓縮連接
-c  寫入到標準輸出,輸入文件不要刪除
-0..-9  壓縮比例,默認爲6
-e  使用更多的 CPU time 來進行壓縮,提升壓縮率。不會影響解壓時所須要的內存。
-T  指定線程數,默認是 1 ,當設置爲 0 時使用和機器核心同樣多的線程。
--format=  指定壓縮輸出格式,能夠是 raw、xz、lzma
-v  顯示更詳細的信息

注意點: 壓縮後的文件時在和源文件同一個目錄。當咱們壓縮的文件爲 /home/nginx/logs/error.log-20191126 ,當咱們在任意目錄執行完 xz /home/nginx/logs/error.log-20191126 後,壓縮後的文件路徑是 /home/nginx/logs/error.log-20191126.xz.orm

3.二、 經常使用命令

xz 進行壓縮的時候,默認使用的內存爲 總內存的 5% 左右。ip

  • 壓縮文件(源文件不保留)
xz   /home/nginx/logs/error.log-20191126
  • 壓縮文件(源文件保留)
xz -k /home/nginx/logs/error.log-20191126

壓縮的時候設定最大使用內存 --memlimit-compress= 示例:--mem‐
limit-compress=80MiB內存

  • 解壓縮文件
xz -d  /home/nginx/logs/error.log-20191126.xz

或者get

unxz  /home/nginx/logs/error.log-20191126.xz

解壓縮的時候設定最大使用內存 --memlimit-decompress=

  • 指定多線程數來進行壓縮
xz -T 4  /home/nginx/logs/error.log-20191126

4、擴展

4.一、unxz

xz 壓縮包的解壓命令

4.二、xzcat

xz --decompress --stdout
查看壓縮文件的內容

4.三、lzma

xz --format=lzma
壓縮格式爲 lzma

4.四、unlzma

xz --format=lzma --decompress
解壓 壓縮格式爲 lzma 的壓縮包

4.五、lzcat

xz --format=lzma --decompress --stdout

相關文章
相關標籤/搜索