XZ Utils (xz-utils或簡稱xz)是一個開源且完全免費的軟件項目,它提供了在任何GNU / Linux操作系統上使用XZ tarball的所有必要工具。它允許您提取以.xz或.lzma文件擴展名結尾的存檔,以及使用XZ壓縮方法壓縮文件和文件夾,從而生成.xz,.lzma,tar.xz或tar.lzma存檔。
最強大的壓縮算法之一
XZ毫無疑問是世界上最強大的壓縮算法之一,它運行在GNU / Linux系統上。它能夠創建比其他常用壓縮方法(比如RAR,ZIP,GZ或BZ2)小兩到三倍的存檔。更準確地說,XZ存檔比bzip2壓縮包小15%,比gzip文件小30%。
什麼’在盒子裡?
XZ Utils或xz-utils或xz是該軟件包的官方名稱,可以從其默認軟件存儲庫輕鬆安裝到許多GNU / Linux操作系統上。它包含liblzma壓縮庫,xz命令行工具和xzdec解壓縮工具。
此外,它附帶了一組shell腳本,包括xzgrep,xzegrep,xzfgrep,xzless,xzmore,xzcat,xzcmp和xzdiff,它們允許您查看,比較和grep XZ存檔,以及必要的組件處理LZMA檔案,現在已被XZ棄用。 XZ命令包括幾個重要選項,包括強制解壓縮和壓縮的功能。
支持的平台
GNU / Linux,GNU / HURD,BSD(FreeBSD,OpenBSD,NetBSD,Dragonfly BSD和MirBSD),MINIX,Solaris,IRIX,AIX,QNX,Mac OS X,Haiku正式支持XZ數據壓縮軟件,HP-UX,Tru64,OpenVMS,OpenVOS,IBM OS / 2,DOS(FreeDOS和MS-DOS),以及Microsoft Windows 95及更高版本。
什麼是新的在此版本中:
- liblzma:
- 允許0作為內存使用限制,而不是返回LZMA_PROG_ERROR。現在0被視為指定了1個字節,實際上與0相同。
- 使用“noexcept”關鍵字而不是“throw()”在使用C ++ 11(或更新標準)編譯器時的公共頭文件中。
- 為最近的英特爾C編譯器添加了可移植性修復程序。
- Microsoft Visual Studio構建文件已在windows / vs2013和windows / vs2017下移動。
- XZ:
- 修復" xz --list --robot missing_or_bad_file.xz"它會嘗試打印一個單元化的字符串,從而產生垃圾輸出。由於退出狀態不為零,因此大多數使用此類命令都不會嘗試解釋垃圾輸出。
- " xz --list foo.xz"可以打印“內部錯誤(錯誤)”在已設置特定內存使用限制的極端情況下。
版本中的新功能:
- XZ:
- 在嘗試刪除文件之前始終關閉文件,以避免某些操作系統和文件系統組合出現問題。
- 修復了Windows上文件時間戳的複制。
- 使用Capsicum(FreeBSD> = 10)添加了實驗(默認情況下禁用)沙盒支持。請參閱INSTALL中的--enable-sandbox。
- C99 / C11一致性修復了liblzma。這些問題至少會影響使用鏈接時優化的一些構建。
- 修復了很少使用的函數lzma_index_dup()。 中的錯誤
- 默認情況下,現在禁用外部SHA-256代碼。它仍然可以通過傳遞--enable-external-sha256來配置。默認情況下禁用它的原因(有關詳細信息,請參閱INSTALL)...
- 某些特定於操作系統的SHA-256實現與OpenSSL衝突,並導致鏈接liblzma和libcrypto的程序出現問題。至少FreeBSD 10和MINIX 3.3.0會受到影響。
- 在某些操作系統中,內部SHA-256比SHA-256代碼更快。
- 更改了CPU核心數檢測,以便在GNU / Linux和GNU / kFreeBSD上使用sched_getaffinity()。
- 修復了構建系統和xz,即使使用configure選項從libilzma禁用了編碼器,解碼器或線程,也可以構建xz。這些修補程序為config.h添加了兩個新的#defines:HAVE_ENCODERS和HAVE_DECODERS。
版本5.2.2中的新功能:
- 修復了QNX特定代碼中的錯誤。
- 省略了pipe2()的使用,即使它可用於避免某些舊的Linux和glibc組合的可移植性問題。
- 更新了德語翻譯。
- 使用Visual Studio 2013 update 2或更高版本添加項目文件以構建靜態和共享liblzma(不是整個XZ Util)。
- 記錄了線程解壓縮尚未實現。描述多線程支持的5.2.0 NEWS條目錯誤地表示“解壓縮”。當它應該說“壓縮”時。
版本5.2.1中的新功能:
- 修正了LZMA1和LZMA2快速模式下的壓縮比回歸。該錯誤出現在5.1.4beta和5.2.0版本中。
- 修復了xz中至少影響OpenBSD的可移植性問題。
- 修正了xzdiff與FreeBSD的mktemp兼容,這與大多數其他mktemp實現不同。
- 更改了CPU核心數檢測,以便在FreeBSD上使用cpuset_getaffinity()。
5.2.0版中的新功能:
- 5.0.8的所有修復
- liblzma:修復了使用預設時的lzma_stream_encoder_mt_memusage()。
- xzdiff:如果未安裝mktemp,mkdir將用作後備來創建臨時目錄。仍然建議安裝mktemp。
- 更新了法語,德語,意大利語,波蘭語和越南語翻譯。
5.0.7版中的新功能:
- 5.0.6的所有修復
- liblzma:修復了在線程編碼器初始化中使用預設的問題。
- xz --block-list和--block-size現在可以在單線程模式下一起使用。以前,該組合僅適用於多線程模式。
- 添加了對liblzma的LZMA_IGNORE_CHECK支持,並將其作為--ignore-check在xz中提供。
- liblzma速度優化:
- 優化了新LZMA1或LZMA2編碼器的初始化。 (重新初始化已分配的編碼器的速度不受影響。)這有助於使用lzma_stream_buffer_encode()壓縮許多小緩衝區以及其他類似情況,其中未重用已分配的編碼器狀態。如果一次壓縮許多小文件而不是運行xz一次並將所有文件作為命令行參數,這個加速在xz中也是可見的。
- 當允許未對齊訪問時(使用--enable-unaligned-access配置),緩衝區比較現在要快得多。這顯著加快了編碼速度。有針對32位和64位x86的特定於arch的代碼(32位需要SSE2以獲得最佳結果,並且現在沒有運行時CPU檢測)。對於其他arch,只有通用代碼可能不像特定於arch的解決方案那樣最佳。
- 對SHA-256代碼進行了一些速度優化。 (請注意,內置的SHA-256代碼並未在所有操作系統上使用。)
- 現在可以使用windows / config.h使用MSVC 2013更新2或更高版本構建liblzma。
- 增加了越南語翻譯。
版本5.0.6中的新功能:
- liblzma:修復了在線程編碼器初始化中使用預設的問題。
- xz --block-list和--block-size現在可以在單線程模式下一起使用。以前,該組合僅適用於多線程模式。
- 添加了對liblzma的LZMA_IGNORE_CHECK支持,並將其作為--ignore-check在xz中提供。
- liblzma速度優化:
- 優化了新LZMA1或LZMA2編碼器的初始化。 (重新初始化已分配的編碼器的速度不受影響。)這有助於使用lzma_stream_buffer_encode()壓縮許多小緩衝區以及其他類似情況,其中未重用已分配的編碼器狀態。如果一次壓縮許多小文件而不是運行xz一次並將所有文件作為命令行參數,這個加速在xz中也是可見的。
- 當允許未對齊訪問時(使用--enable-unaligned-access配置),緩衝區比較現在要快得多。這顯著加快了編碼速度。有針對32位和64位x86的特定於arch的代碼(32位需要SSE2以獲得最佳結果,並且現在沒有運行時CPU檢測)。對於其他arch,只有通用代碼可能不像特定於arch的解決方案那樣最佳。
- 對SHA-256代碼進行了一些速度優化。 (請注意,內置的SHA-256代碼並未在所有操作系統上使用。)
- 現在可以使用windows / config.h使用MSVC 2013更新2或更高版本構建liblzma。
- 增加了越南語翻譯。
評論沒有發現