다음 스크립트
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/언어/bash( xz (XZ Utils) 5.2.2
및 tar (GNU tar) 1.34
). 하지만 안에는 없어https://www.onlinegdb.com/online_bash_shell( xz (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
추신: 압축을 풀 때는 --auto-compress 옵션이 필요하지 않습니다.