{"id":2152,"date":"2024-07-26T00:22:29","date_gmt":"2024-07-25T16:22:29","guid":{"rendered":"https:\/\/www.zhiwanyuzhou.com\/?p=2152"},"modified":"2024-08-01T11:15:17","modified_gmt":"2024-08-01T03:15:17","slug":"xz%e6%96%87%e4%bb%b6","status":"publish","type":"post","link":"https:\/\/www.zhiwanyuzhou.com\/index.php\/2024\/07\/26\/xz%e6%96%87%e4%bb%b6\/","title":{"rendered":"XZ\u6587\u4ef6"},"content":{"rendered":"\n<h2>\u4e00\u3001\u4ecb\u7ecd<\/h2>\n\n\n\n<p>XZ\u662f\u4e00\u79cd\u4f7f\u7528\u200cLZMA\u538b\u7f29\u7b97\u6cd5\u7684\u65e0\u635f\u6570\u636e\u538b\u7f29\u6587\u4ef6\u683c\u5f0f\u3002 \u5b83\u7531\u200cxz utils\u63d0\u4f9b\u652f\u6301\uff0c\u8fd9\u662f\u4e00\u79cdlzma utils\u7684\u540e\u7eed\u7248\u672c\uff0c\u4e13\u95e8\u7528\u4e8e\u5904\u7406*.xz\u683c\u5f0f\u7684\u6587\u4ef6\u3002<\/p>\n\n\n\n<p>XZ Utils\u662f\u514d\u8d39\u7684\u901a\u7528\u6570\u636e\u538b\u7f29\u8f6f\u4ef6\uff0c\u5177\u6709\u9ad8\u538b\u7f29\u6bd4\u3002XZ Utils\u662f\u4e3a\u7c7b\u4f3cposix\u7684\u7cfb\u7edf\u7f16\u5199\u7684\uff0c\u4f46\u4e5f\u9002\u7528\u4e8e\u4e00\u4e9b\u4e0d\u90a3\u4e48posix\u7684\u7cfb\u7edf\u3002XZ Utils\u662fLZMA Utils\u7684\u7ee7\u627f\u8005\u3002<\/p>\n\n\n\n<p>XZ Utils\u538b\u7f29\u4ee3\u7801\u7684\u6838\u5fc3\u662f\u57fa\u4e8eLZMA SDK\u7684\uff0c\u4f46\u662f\u4e3a\u4e86\u9002\u5408XZ Utils\uff0c\u5b83\u5df2\u7ecf\u88ab\u4fee\u6539\u4e86\u5f88\u591a\u3002\u76ee\u524d\u4e3b\u8981\u7684\u538b\u7f29\u7b97\u6cd5\u662fLZMA2\uff0c\u5b83\u5728.xz\u5bb9\u5668\u683c\u5f0f\u4e2d\u4f7f\u7528\u3002\u5bf9\u4e8e\u5178\u578b\u7684\u6587\u4ef6\uff0cXZ Utils\u521b\u5efa\u7684\u8f93\u51fa\u6bd4gzip\u5c0f30%\uff0c\u6bd4bzip2\u5c0f15%\u3002<\/p>\n\n\n\n<p>XZ Utils\u7531\u51e0\u4e2a\u7ec4\u4ef6\u7ec4\u6210\uff1a<\/p>\n\n\n\n<ul>\n<li>liblzma\u662f\u4e00\u4e2a\u538b\u7f29\u5e93\uff0c\u5176API\u7c7b\u4f3c\u4e8ezlib\u3002<\/li>\n\n\n\n<li>xz\u662f\u4e00\u4e2a\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u8bed\u6cd5\u7c7b\u4f3c\u4e8egzip\u3002<\/li>\n\n\n\n<li>xzdec\u662f\u4e00\u4e2a\u53ea\u89e3\u538b\u7684\u5de5\u5177\uff0c\u6bd4\u529f\u80fd\u9f50\u5168\u7684xz\u5de5\u5177\u5c0f\u3002<\/li>\n\n\n\n<li>\u4e00\u7ec4shell\u811a\u672c(xzgrep, xzdiff\u7b49)\u5df2\u7ecf\u4ecegzip\u6539\u7f16\uff0c\u4ee5\u65b9\u4fbf\u67e5\u770b\uff0cgrepping\u548c\u6bd4\u8f83\u538b\u7f29\u6587\u4ef6\u3002<\/li>\n\n\n\n<li>LZMA Utils\u547d\u4ee4\u884c\u5de5\u5177\u7684\u4eff\u771f\u7b80\u5316\u4e86\u4eceLZMA Utils\u5230XZ Utils\u7684\u8fc7\u6e21\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u867d\u7136liblzma\u6709\u4e00\u4e2a\u7c7b\u4f3czlib\u7684API\uff0c\u4f46liblzma\u4e0d\u5305\u62ec\u4efb\u4f55\u6587\u4ef6I\/O\u51fd\u6570\u3002\u8ba1\u5212\u6709\u4e00\u4e2a\u5355\u72ec\u7684I\/O\u5e93\uff0c\u5b83\u5c06\u901a\u8fc7\u6613\u4e8e\u4f7f\u7528\u7684API\u62bd\u8c61\u5904\u7406.gz\u3001.bz2\u548c.xz\u6587\u4ef6\u3002<\/p>\n\n\n\n<p>\u672c\u6587\u4ee5\u5b98\u65b9\u6e90\u7801\u548c\u6587\u6863\u4f5c\u4e3a\u6307\u5bfc\uff0c\u7b80\u5355\u5206\u6790\u4ee5\u4e0bxz\u7684\u6587\u4ef6\u7ec4\u6210\u7ed3\u6784\u3002<\/p>\n\n\n\n<h2>\u4e8c\u3001\u73af\u5883<\/h2>\n\n\n\n<pre class=\"wp-block-code has-palette-color-4-color has-palette-color-8-background-color has-text-color has-background\"><code># \u64cd\u4f5c\u7cfb\u7edf\nUbuntu 20.04\n\n# \u5b89\u88c5xz\u5de5\u5177\u6216\u6e90\u7801\nsudo apt install xz-utils\n\n# \u6e90\u7801\u5730\u5740\nhttps:&#47;&#47;github.com\/tukaani-project\/xz\/blob\/v5.2.6<\/code><\/pre>\n\n\n\n<p>\u521b\u5efa\u4e00\u4e2atext.txt\u6587\u4ef6\uff0c\u4ee5\u4e0b\u4e3a\u539f\u59cb\u5185\u5bb9\uff08\u5305\u542b\u6362\u884c\uff09<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-4-color has-palette-color-8-background-color has-text-color has-background\"><code>0123456789abcdef\n <\/code><\/pre>\n\n\n\n<p>\u4f7f\u7528xz\u547d\u4ee4\u538b\u7f29\uff0c\u751f\u6210test.txt.xz\u6587\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-4-color has-palette-color-8-background-color has-text-color has-background\"><code>xz test.txt<\/code><\/pre>\n\n\n\n<h2>\u4e09\u3001\u6587\u4ef6\u7ed3\u6784<\/h2>\n\n\n\n<p>\u53c2\u8003\u6e90\u7801<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/stream_decoder.c#L114\" data-type=\"URL\" data-id=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/stream_decoder.c#L114\" target=\"_blank\">stream_decoder.c<\/a>\uff0c\u4e00\u4e2axz\u6570\u636e\u6d41\u91cc\u9762\u5305\u542b\u591a\u4e2a\u5b57\u6bb5<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"848\" height=\"749\" src=\"https:\/\/www.zhiwanyuzhou.com\/wp-content\/uploads\/2024\/07\/image.png\" alt=\"\" class=\"wp-image-2160\" srcset=\"https:\/\/www.zhiwanyuzhou.com\/wp-content\/uploads\/2024\/07\/image.png?v=1721877765 848w, https:\/\/www.zhiwanyuzhou.com\/wp-content\/uploads\/2024\/07\/image-300x265.png?v=1721877765 300w, https:\/\/www.zhiwanyuzhou.com\/wp-content\/uploads\/2024\/07\/image-768x678.png?v=1721877765 768w\" sizes=\"(max-width: 848px) 100vw, 848px\" \/><\/figure>\n\n\n\n<p>\u6587\u4ef6\u7ed3\u6784\uff0c\u53c2\u8003\u5b98\u65b9\u683c\u5f0f\u8bf4\u660e<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-4-color has-palette-color-8-background-color has-text-color has-background\"><code>  +-+-+-+-+-+-+-+-+-+-+-+-+=======+=======+     +=======+\n  |     Stream Header     | Block | Block | ... | Block |\n  +-+-+-+-+-+-+-+-+-+-+-+-+=======+=======+     +=======+\n\n       +=======+-+-+-+-+-+-+-+-+-+-+-+-+\n  ---&gt; | Index |     Stream Footer     |\n       +=======+-+-+-+-+-+-+-+-+-+-+-+-+<\/code><\/pre>\n\n\n\n<p>1\u3001Stream Header<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-4-color has-palette-color-8-background-color has-text-color has-background\"><code>  +---+---+---+---+---+---+-------+------+--+--+--+--+\n  |  Header Magic Bytes   | Stream Flags |   CRC32   |\n  +---+---+---+---+---+---+-------+------+--+--+--+--+<\/code><\/pre>\n\n\n\n<p>2\u3001Block<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-4-color has-palette-color-8-background-color has-text-color has-background\"><code>  +==============+=================+===============+=======+\n  | Block Header | Compressed Data | Block Padding | Check |\n  +==============+=================+===============+=======+<\/code><\/pre>\n\n\n\n<p>2.1\u3001Block Header<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-4-color has-palette-color-8-background-color has-text-color has-background\"><code>  +-------------------+-------------+=================+\n  | Block Header Size | Block Flags | Compressed Size |\n  +-------------------+-------------+=================+\n\n       +===================+======================+\n  ---&gt; | Uncompressed Size | List of Filter Flags |\n       +===================+======================+\n\n       +================+--+--+--+--+\n  ---&gt; | Header Padding |   CRC32   |\n       +================+--+--+--+--+<\/code><\/pre>\n\n\n\n<p>3\u3001Index<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-4-color has-palette-color-8-background-color has-text-color has-background\"><code>  +-----------------+===================+\n  | Index Indicator | Number of Records |\n  +-----------------+===================+\n\n       +=================+===============+-+-+-+-+\n  ---&gt; | List of Records | Index Padding | CRC32 |\n       +=================+===============+-+-+-+-+<\/code><\/pre>\n\n\n\n<p>4\u3001Stream Footer<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-4-color has-palette-color-8-background-color has-text-color has-background\"><code>  +-+-+-+-+---+---+---+---+-------+------+----------+---------+\n  | CRC32 | Backward Size | Stream Flags | Footer Magic Bytes |\n  +-+-+-+-+---+---+---+---+-------+------+----------+---------+<\/code><\/pre>\n\n\n\n<h2>\u56db\u3001\u6587\u4ef6\u89e3\u6790<\/h2>\n\n\n\n<p>\u4f7f\u7528hexdump\u67e5\u770b\u5341\u516d\u8fdb\u5236\u5185\u5bb9<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-4-color has-palette-color-8-background-color has-text-color has-background\"><code>          0  1  2  3  4  5  6  7   8  9  a  b  c  d  e  f\n00000000  fd 37 7a 58 5a 00 00 04  e6 d6 b4 46 02 00 21 01  |.7zXZ......F..!.|\n00000010  16 00 00 00 74 2f e5 a3  01 00 10 30 31 32 33 34  |....t\/.....01234|\n00000020  35 36 37 38 39 61 62 63  64 65 66 0a 00 00 00 00  |56789abcdef.....|\n00000030  02 e1 9a 86 38 da 4b 0f  00 01 29 11 32 0a 70 0e  |....8.K...).2.p.|\n00000040  1f b6 f3 7d 01 00 00 00  00 04 59 5a              |...}......YZ|<\/code><\/pre>\n\n\n\n<p>\u901a\u8fc7\u6e90\u7801\u5206\u6790\uff0c\u53ef\u4ee5\u5f97\u5230xz\u6587\u4ef6\u7684\u7ed3\u6784<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>\u504f\u79fb<\/td><td>\u6570\u636e<\/td><td>\u8bf4\u660e<\/td><\/tr><tr><td>0x00-0x05<\/td><td>\\xFD7zXZ\\x00<\/td><td>1\u3001Stream Header \u8d77\u59cb\u4f4d\uff0c<br><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/stream_flags_decoder.c#L34\" data-type=\"URL\" data-id=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/stream_flags_decoder.c#L34\" target=\"_blank\">lzma_header_magic<\/a>\uff0cxz\u5934\u6807\u5fd7<\/td><\/tr><tr><td>0x06-0x07<\/td><td>\\x00\\x04<\/td><td>Stream Flags<br><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/stream_flags_decoder.c#L23\" data-type=\"URL\" data-id=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/stream_flags_decoder.c#L23\" target=\"_blank\">version<\/a>\uff0c\u7248\u672c0x00<br><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/stream_flags_decoder.c#L24\" target=\"_blank\">check<\/a>\uff0cCRC\u7c7b\u578b0x04\uff0c4&amp;0x0F=4\u8868\u793aCRC64\uff0c1\u662fCRC32<\/td><\/tr><tr><td>0x08-0x0b<\/td><td>0x46B4D6E6<\/td><td>Stream Flags\u7684 <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/stream_flags_decoder.c#L39\" data-type=\"URL\" data-id=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/stream_flags_decoder.c#L39\" target=\"_blank\">CRC32<\/a><\/td><\/tr><tr><td>0x0c<\/td><td>0x02<\/td><td>2\u3001Block Header \u7684\u957f\u5ea6\uff0c<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/stream_decoder.c#L176\" data-type=\"URL\" data-id=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/stream_decoder.c#L176\" target=\"_blank\">header_size<\/a><br>\u8ba1\u7b97\u65b9\u5f0f\uff1a(2+1)*4=12<\/td><\/tr><tr><td>0x0d<\/td><td>0x00<\/td><td><a href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/block_header_decoder.c#L74\" data-type=\"URL\" data-id=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/block_header_decoder.c#L74\" target=\"_blank\" rel=\"noreferrer noopener\">Check<\/a>\uff1a\u4e0e 0x3C\u76f8\u4e0e &gt; 0 \uff0c\u8868\u793a\u4e0d\u652f\u6301\u7684\u6807\u5fd7<br><a href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/block_header_decoder.c#L81\" data-type=\"URL\" data-id=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/block_header_decoder.c#L81\" target=\"_blank\" rel=\"noreferrer noopener\">Compressed<\/a>\uff1a\u4e0e 0x40 \u76f8\u4e0e &gt; 0\uff0c \u8ba1\u7b97\u538b\u7f29\u5927\u5c0f<br><a href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/block_header_decoder.c#L94\" data-type=\"URL\" data-id=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/block_header_decoder.c#L94\" target=\"_blank\" rel=\"noreferrer noopener\">Uncompressed<\/a>\uff1a\u4e0e 0x80 \u76f8\u4e0e &gt; 0\uff0c\u8ba1\u7b97\u672a\u538b\u7f29\u5927\u5c0f<\/td><\/tr><tr><td>0x0e<\/td><td>0x21<\/td><td><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/filter_flags_decoder.c#L25\" data-type=\"URL\" data-id=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/filter_flags_decoder.c#L25\" target=\"_blank\">Filter ID<\/a>\uff0c\u8fd9\u91cc\u8868\u793aLZMA_FILTER_LZMA2<\/td><\/tr><tr><td>0x0f<\/td><td>0x01<\/td><td><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/filter_flags_decoder.c#L33\" data-type=\"URL\" data-id=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/filter_flags_decoder.c#L33\" target=\"_blank\">Size of Properties<\/a>\uff0c\u7279\u6027\u5927\u5c0f\u4e3a1<\/td><\/tr><tr><td>0x10<\/td><td>0x16<\/td><td><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/lzma\/lzma2_decoder.c#L278\" data-type=\"URL\" data-id=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/lzma\/lzma2_decoder.c#L278\" target=\"_blank\">props<\/a>\uff0c\u8fd9\u91cc\u662fLZMA2\u7684\u7279\u6027\uff0c<br>\u5b57\u5178\u5927\u5c0f\u4e3a\uff1a(2|(0x16&amp;1))&lt;&lt; (0x16\/2+11)=0x800000<\/td><\/tr><tr><td>0x11-0x13<\/td><td>0x000000<\/td><td>\u586b\u51450<\/td><\/tr><tr><td>0x14-0x17<\/td><td>0xA3E52F74<\/td><td>BLOCK_HEADER \u7684 <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/block_header_decoder.c#L70\" data-type=\"URL\" data-id=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/common\/block_header_decoder.c#L70\" target=\"_blank\">CRC32<\/a><\/td><\/tr><tr><td>0x18<\/td><td>0x01<\/td><td>3\u3001Compressed Data \u8d77\u59cb\u4f4d\uff0c\u4f7f\u7528lzma2\u538b\u7f29<br>lzma2\u7279\u6027\uff1a<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/lzma\/lzma2_decoder.c#L69\" data-type=\"URL\" data-id=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\/src\/liblzma\/lzma\/lzma2_decoder.c#L69\" target=\"_blank\">control<\/a><\/td><\/tr><tr><td>0x19-0x1a<\/td><td>\\x00\\x10<\/td><td>\u672a\u538b\u7f29\u7684\u5927\u5c0f0x10+1 = 0x11<\/td><\/tr><tr><td>0x1b-0x2b<\/td><td>0123456789abcdef\\x0a<\/td><td>\u672a\u538b\u7f29\u7684\u6570\u636e<\/td><\/tr><tr><td>0x2c-0x2f<\/td><td>0x00000000<\/td><td>padding\uff0c\u586b\u51450<\/td><\/tr><tr><td>0x30-0x37<\/td><td>0x0f4bda38869ae102<\/td><td>\u538b\u7f29\u7684\u6570\u636e\u7684 CRC64<\/td><\/tr><tr><td>0x38<\/td><td>0x00<\/td><td>4\u3001Index \u8d77\u59cb\u4f4d<br>Index Indicator\uff0c\u7d22\u5f15<\/td><\/tr><tr><td>0x39<\/td><td>0x01<\/td><td>Number of Records<\/td><\/tr><tr><td>0x3a<\/td><td>0x29<\/td><td>Unpadded Size<\/td><\/tr><tr><td>0x3b<\/td><td>0x11<\/td><td>Uncompressed Size\uff0c\u672a\u538b\u7f29\u7684\u5927\u5c0f17\u5b57\u8282<\/td><\/tr><tr><td>0x3c-0x3f<\/td><td>0x0e700a32<\/td><td>Index \u7684 CRC32<\/td><\/tr><tr><td>0x40-0x43<\/td><td>0x7df3b61f<\/td><td>5\u3001Stream Footer \u8d77\u59cb\u4f4d<br>Backward Size + Stream Flags \u7684 CRC32<\/td><\/tr><tr><td>0x44-0x47<\/td><td>0x00000001<\/td><td>Backward Size\uff0c\u540e\u9762\u7684\u5927\u5c0f<br>\u8ba1\u7b97\u65b9\u5f0f\uff1a(1+1)*4=8<\/td><\/tr><tr><td>0x48-0x49<\/td><td>\\x00\\x04<\/td><td>Stream Flags\uff0c\u540cstream header\u91cc\u9762\u7684Stream Flags<\/td><\/tr><tr><td>0x4a-0x4b<\/td><td>YZ<\/td><td>Stream Footer\u7684\u6807\u5fd7<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2>\u4e94\u3001\u53c2\u8003\u94fe\u63a5<\/h2>\n\n\n\n<p><a href=\"https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6\">https:\/\/github.com\/tukaani-project\/xz\/blob\/v5.2.6<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/tukaani.org\/xz\/xz-file-format.txt\">https:\/\/tukaani.org\/xz\/xz-file-format.txt<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001\u4ecb\u7ecd XZ\u662f\u4e00\u79cd\u4f7f\u7528\u200cLZMA\u538b\u7f29\u7b97\u6cd5\u7684\u65e0\u635f\u6570\u636e\u538b\u7f29\u6587\u4ef6\u683c\u5f0f\u3002 \u5b83\u7531\u200cxz utils\u63d0\u4f9b\u652f\u6301\uff0c\u8fd9\u662f\u4e00\u79cdlzma utils\u7684\u540e\u7eed\u7248\u672c\uff0c\u4e13\u95e8\u7528\u4e8e\u5904\u7406*.xz\u683c\u5f0f\u7684\u6587\u4ef6\u3002 XZ Utils\u662f\u514d\u8d39\u7684\u901a\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11],"tags":[],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":5}},"_links":{"self":[{"href":"https:\/\/www.zhiwanyuzhou.com\/index.php\/wp-json\/wp\/v2\/posts\/2152"}],"collection":[{"href":"https:\/\/www.zhiwanyuzhou.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zhiwanyuzhou.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhiwanyuzhou.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zhiwanyuzhou.com\/index.php\/wp-json\/wp\/v2\/comments?post=2152"}],"version-history":[{"count":17,"href":"https:\/\/www.zhiwanyuzhou.com\/index.php\/wp-json\/wp\/v2\/posts\/2152\/revisions"}],"predecessor-version":[{"id":2173,"href":"https:\/\/www.zhiwanyuzhou.com\/index.php\/wp-json\/wp\/v2\/posts\/2152\/revisions\/2173"}],"wp:attachment":[{"href":"https:\/\/www.zhiwanyuzhou.com\/index.php\/wp-json\/wp\/v2\/media?parent=2152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zhiwanyuzhou.com\/index.php\/wp-json\/wp\/v2\/categories?post=2152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhiwanyuzhou.com\/index.php\/wp-json\/wp\/v2\/tags?post=2152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}