xz是什麼 高壓縮率的工具,它使用 LZMA2 壓縮演算法,生成的壓縮文件比傳統使用的 gzip、bzip2 生成的壓縮文件更小, 不過xz也有一個壞處就是壓縮時間比較長,比7z壓縮時間還長一些。不過壓縮主要用於歸檔,不介意的可以忽略。 擅長壓縮文本和日誌文件,針對這塊的壓縮率,是目前我發現效率最高的 ...
xz是什麼
高壓縮率的工具,它使用 LZMA2 壓縮演算法,生成的壓縮文件比傳統使用的 gzip、bzip2 生成的壓縮文件更小,
不過xz也有一個壞處就是壓縮時間比較長,比7z壓縮時間還長一些。不過壓縮主要用於歸檔,不介意的可以忽略。
擅長壓縮文本和日誌文件,針對這塊的壓縮率,是目前我發現效率最高的,沒有之一。
語法結構:
xz [選項] [參數]
主要參數說明:
- -z --compress # 強制壓縮
- -d --decompress # 解壓縮
- -t --test # 測試壓縮文件的完整性
- -k --keep # 壓縮或解壓時保持源文件不被刪除
- -l --list # 列出有關.xz文件的信息
- -0~9 # 指定壓縮率,預設為6;
- -h --help # 顯示這個簡潔的幫助並退出
- -H --long-help # 顯示更多幫助(還列出了高級選項)
- -V --version # 顯示版本號並退出
有些操作系統可以沒有自帶,需要執行yum install xz
自行安裝一下。
記得先裝epel源yum install epel-release
壓縮和解壓案例
壓縮使用
首先使用dd生成一個大文件,再使用xz壓縮看效果
[root@VM-0-13-centos ~]# dd if=/dev/zero of=test.jpg bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.588149 s, 1.8 GB/s
[root@VM-0-13-centos ~]# xz test.jpg
[root@VM-0-13-centos ~]# ll -h
total 596K
-rw-r--r-- 1 root root 153K Jan 29 18:11 test.jpg.xz
可以看到已經對test.jpg文件進行壓縮,格式如上。
解壓使用
解壓test.jpg.xz使用-d參數,如果保留源文件可以加-k
[root@VM-0-13-centos ~]# xz -dk test.jpg.xz
[root@VM-0-13-centos ~]# ll -h test*
-rw-r--r-- 1 root root 1.0G Jan 29 18:11 test.jpg
-rw-r--r-- 1 root root 153K Jan 29 18:11 test.jpg.xz
可以看到壓縮文件被保留了。
額外用法
使用參數 -l 顯示 .xz 文件的基本信息。基本信息包括壓縮率、數據完整性驗證方式等。
[root@VM-0-13-centos ~]# xz -l test.jpg.xz
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 1 152.7 KiB 1,024.0 MiB 0.000 CRC64 test.jpg.xz
使用xzcat
對已壓縮日誌直接查看,再grep
過濾關鍵信息,或xzgrep
直接過濾也行,省去再解壓步驟。
[root@VM-0-13-centos ~]# xz -k /root/wechatbot/bin/nohup.out
[root@VM-0-13-centos ~]# cd /root/wechatbot/bin/
[root@VM-0-13-centos bin]# ll
total 38456
-rw-r--r-- 1 root root 92 Dec 10 12:06 config.json
-rw------- 1 root root 674304 Jan 29 18:33 nohup.out
-rw------- 1 root root 83000 Jan 29 18:32 nohup.out.xz
[root@VM-0-13-centos bin]# xzcat nohup.out.xz |grep "18:29"
2023/01/27 18:29:02 RetCode:0 Selector:0
2023/01/27 18:29:27 RetCode:0 Selector:0
2023/01/27 18:29:52 RetCode:0 Selector:0
2023/01/28 09:18:29 RetCode:0 Selector:0
2023/01/28 18:29:06 RetCode:0 Selector:0
2023/01/28 18:29:31 RetCode:0 Selector:0
2023/01/28 18:29:56 RetCode:0 Selector:0
---- 鋼鐵俠的知識庫 2023.01.29
總結
以上就是xz壓縮解壓常見用法,工作中一般會寫腳本對日誌進行定時壓縮,
有需要查看關鍵報錯內容的時候使用xzgrep即可,無需再解壓,非常方便。
想瞭解更多xz --help
或xz -H
,或官網:https://tukaani.org/xz/