![긴 이름(100자 이상)이 있는 tar의 압축을 풀 때 tar 지원이 얼마나 일반적입니까?](https://linux55.com/image/182381/%EA%B8%B4%20%EC%9D%B4%EB%A6%84(100%EC%9E%90%20%EC%9D%B4%EC%83%81)%EC%9D%B4%20%EC%9E%88%EB%8A%94%20tar%EC%9D%98%20%EC%95%95%EC%B6%95%EC%9D%84%20%ED%92%80%20%EB%95%8C%20tar%20%EC%A7%80%EC%9B%90%EC%9D%B4%20%EC%96%BC%EB%A7%88%EB%82%98%20%EC%9D%BC%EB%B0%98%EC%A0%81%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
오늘 저는 파일 이름 중 하나가 100자를 초과하기 때문에 Windows에서 Commons-compress를 사용하여 Java를 사용하여 파일을 압축할 수 없는 문제에 직면했습니다. 나는 해결책을 찾고 있었고 다음을 발견했습니다.
~에 따르면https://commons.apache.org/proper/commons-compress/tar.html
TAR 형식에는 다양한 방언이 있으며 TAR 형식도 다를 수 있습니다. tar 패키지에는 기존의 많은 방언을 읽기 위한 특별한 경우가 포함되어 있으며 기본적으로 원래 형식(종종 "ustar"라고 함)으로 아카이브를 생성하려고 시도합니다. 이 원시 형식은 100자보다 길거나 8GiB보다 큰 파일 이름을 지원하지 않으며 이러한 제한을 초과하는 항목을 쓰려고 하면 기본적으로 tarball이 실패합니다. "ustar"는 기존의 모든 tar 방언에 공통되며 대부분의 기존 도구에서 이해됩니다.
LONGFILE_POSIX: POSIX 1003.1에서 정의한 PAX 확장 헤더를 사용합니다. 대부분의 최신 tar 구현에서는 이러한 아카이브를 추출할 수 있습니다. Commons는 1.4를 압축하므로
문서에는 "가장 현대적인 tar 구현"이 언급되어 있습니다. PAX 헤더를 통해 100자보다 긴 파일 이름을 지원하지 않는 일반적인 tar 구현은 무엇입니까? PAX 확장 헤더를 지원하지 않는 tar 구현이 여전히 일반적으로 사용됩니까? Linux 및 Unix에서 일반적인 tar 구현을 사용하여 Windows에서 Commons-Compress로 생성된 .tar.gz 파일을 열 수 있어야 합니다.
답변1
방금 다음 내용이 포함된 tar 아카이브를 성공적으로 포장하고 압축을 풀었습니다.
touch $(for i in {1..222}; do echo -n a; done)
file test.tar
test.tar: POSIX tar archive (GNU)
따라서 Linux에서는 문제가 없어야 합니다. 최소한 Fedora 32.7z/WinRAR은 동일한 압축 패키지를 열고 파일의 압축을 성공적으로 풀 수 있습니다.
Commons-Compress 확장/형식에 관해서는 모르겠습니다.http://www.gnu.org/software/tar/manual그런 것은 없습니다.
제가 테스트할 수 있도록 이와 같은 아카이브를 공유해 주실 수 있을까요?