OSX 10.10.3에서 "tar" 없이 lzma 압축을 사용할 수 있습니까?

OSX 10.10.3에서 "tar" 없이 lzma 압축을 사용할 수 있습니까?

다음과 같이 LZMA를 사용하여 압축된 tar 파일을 만들 수 있습니다.

$ ls ./DbDumps
alpha.dmp
beta.dmp
delta.dmp
$ XZ_OPT=-9 tar cJf dbDumps.tar.xz DbDumps

하지만 내가 정말 하고 싶은 일은 (하지만 할 수 없어)은 각 개별 파일을 압축한 다음 tar 파일을 만드는 것입니다. 예를 들어:

$ cd DbDumps
$ xz.exe *dmp
$ cd ..
$ tar cf dbDumps.tar DbDumps

HomeBrew를 살펴봐야 할까요? XZ.pkg?

실제로 10월 초부터www.애윤.comYosemite는 tar를 통한 경우를 제외하고 *.xz 파일 압축을 지원하지 않는다고 주장됩니다. 맞습니까? "*xz"가 작동할 수도 있지만 Apple은 "이것은공식적인지원됨”?

답변1

확신하는. 첫째, tar는 대부분의 경우 압축을 포함하지 않으며 도우미(지원하는 경우)에게 맡깁니다. 처음에는 도우미가 압축됩니다(.tar.Z). 또한 gzip(.tar.gz 또는 .tgz), bzip2(.tar.bz2), infozip(.tar.zip) 및 기억할 수 없는 몇 가지 도구(.tar. lha, .tar .lhz, .tar.zoo, tar.bz, tar.z). 이들 모두는 tar와 별도로 압축을 사용합니다. 따라서 가장 쉬운 방법은 xz 바이너리(xz.exe 대신 xz라고 함)에 대한 경로를 찾는 것입니다. 시스템에 아직 설치되어 있지 않은 경우 가장 쉬운 방법은 macports와 같은 타사 저장소에서 설치하는 것입니다. 다른 모든 방법이 실패하면 언제든지 소스에서 설치할 수 있습니다(비록 이 지점에 도달할 것이라고 상상할 수는 없지만).

답변2

아카이브에서 "파일별" 압축을 찾고 있다면 .zip을 컨테이너 형식으로 사용할 수 있습니다. zip 형식은 Deflate(zlib 및 gzip에서 사용하는 것과 동일한 압축 방법)에서 가장 일반적으로 사용되지만 Deflate64, BZip2, PPMd 및 LZMA와 같은 여러 다른 방법도 지원합니다. 이 모든 것(그리고 그 이상)은우편번호 애플리케이션 노트zip 표준의 창시자인 Phil Katz가 설립한 회사인 PKWare에서 출판했습니다.

LZMA는 기본적으로 XZ와 동일한 압축 방법이기 때문에 흥미롭습니다(기술적으로 이제 XZ는 기본적으로 LZMA2이지만 버전 2의 장점은 압축 크기나 속도와 관련이 없습니다).

이제 Apple은 Apple이므로 Archive Utility 및 ditto와 같은 표준 압축 도구에 Deflate 방법 외에는 아무것도 포함하지 않습니다(그 이후로 LZMA가 사양의 일부였음에도 불구하고)2006년). 실제로 그들은 번들로 제공되는 Infozip 도구를 제한하여 Deflate만 사용할 수 있도록 했습니다(이러한 도구는 다른 플랫폼에서 더 나은 방법을 지원하지만).

그러나 최근 macOS에는 zipfile, bz2 및 lzma 모듈과 함께 Python 3.8.2가 포함되어 있으므로 bzip2 또는 lzma 메서드를 사용하여 macOS에서 즉시 zip 파일을 열 수 있습니다.

일부 Python 스크립트를 작성할 수 없는 경우 더 쉬운 방법이 있습니다.Python은 zip 작업을 위한 명령줄 인터페이스를 제공합니다.. 인터페이스는 기본적으로 압축을 위해 Deflate를 사용하지만 매우작은 해커이 기본값은 다음과 같이 변경됩니다.

echo '#!/usr/bin/python3' |\
cat - /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/Current/lib/python*/zipfile.py |\
sed '/zf\.write/s/DEFLATED/LZMA/' > ziplzma
chmod +x ziplzma

이제 일반 옵션과 함께 스크립트를 사용할 수 있지만 기본적으로 압축에는 LZMA를 사용하게 됩니다.

./ziplzma -c dbDumps.zip DbDumps

더 많은 옵션을 보려면 실행하세요 ./ziplzma -h.

관련 정보