tar lzma 自動圧縮のため、「tar アーカイブのようには見えません」というエラーが発生します。

tar lzma 自動圧縮のため、「tar アーカイブのようには見えません」というエラーが発生します。

次のスクリプト

mkdir test && cd test
mkdir files
touch files/{1,2,3}
tar --create --file "test.lzma" files/{1,2,3} --auto-compress
mkdir extracted_files
tar --extract --file "test.lzma" --directory extracted_files --auto-compress

次のエラーが発生します。

tar:これはtarアーカイブのようには見えません。

ただし、実際にはtar +圧縮とuncompress + untarが発生します(ファイルは所定の位置にあります)。なぜこれが起こるのですか?これは一種のバグですかtar

私のシステムでは:

xz --version
 xz (XZ Utils) 5.2.7
 liblzma 5.2.7
tar --version
 tar (GNU tar) 1.34
file test/test.lzma
 test/test.lzma: LZMA compressed data, streamed
ls test/extracted_files/
 files

次にコピーすることもできます。https://replit.com/言語/bashxz (XZ Utils) 5.2.2およびtar (GNU tar) 1.34)。しかし、中にはありません。https://www.onlinegdb.com/online_bash_shellxz (XZ Utils) 5.2.4およびtar (GNU tar) 1.30)。

答え1

アップストリームを修正しました。確認するhttps://savannah.gnu.org/bugs/index.php?63250

@Sergey Poznyakov <グレー>:

「これはtarアーカイブのようには見えません。」はエラーではなく警告です。このエラーは、特に tar が署名のファイル形式を判別できず、ファイルサイズが tar ブロックサイズより小さい場合に発生します。署名認識が失敗した場合、tarはサフィックスでファイル形式を決定しようとします。この場合、成功してファイルを抽出しました。

xz生成LZMAファイルを認識するために、次の修正をインストールしました。

http://git.savannah.gnu.org/cgit/tar.git/commit/?id=02f9af1b8df67e55ceb19ea1465d210a2fa1f02c

PS:解凍するには--auto-compressオプションは必要ありません。

関連情報