Programing

하나의 명령으로 tar.xz 만들기

lottogame 2020. 7. 8. 08:15
반응형

하나의 명령으로 tar.xz 만들기


.tar.xz하나의 명령 으로 압축 된 아카이브 를 만들려고합니다 . 이에 대한 구체적인 구문은 무엇입니까?

시도 tar cf - file | xz file.tar.xz했지만 작동하지 않습니다.


-J압축 옵션을 사용하십시오 xz. 그리고 기억하십시오 man tar:)

tar cfJ <archive.tar.xz> <files>

2015-08-10 편집 :

당신이에 인수를 전달하는 경우 tar 대시 (예 : tar -cf반대 tar cf), 다음 -f옵션은 마지막으로 와야 은 파일 이름을 지정하기 때문에, (덕분에 @ABB 그 아웃 지적를 들어!). 이 경우 명령은 다음과 같습니다.

tar -cJf <archive.tar.xz> <files>

스위치 -J는 최신 시스템에서만 작동합니다. 보편적 인 명령은 :

.tar.xz 아카이브를 만들려면

                tar cf - directory/ | xz -z - > directory.tar.xz

설명

  1. tar cf - directorydirectory /를 읽고 TAR 형식으로 넣기 시작합니다. 이 작업의 출력은 표준 출력에서 ​​생성됩니다.

  2. | 표준 출력을 다른 프로그램의 입력으로 파이프 ...

  3. ... 일어납니다 xz -zf -. XZ는 표준 입력 ( ) 인 -z파일에서 아카이브 ( ) 를 작성 ( ) 하도록 구성되어 있습니다 .-f-

  4. 당신의 출력을 리디렉션 xz받는 tar.xz파일.


파이프 모드가 마음에 들면 가장 깨끗한 솔루션입니다.

tar c some-dir | xz > some-dir.tar.xz

f파일을 처리하기 위해 옵션 을 넣은 다음 -파일이 표준 입력임을 지정하는 데 사용할 필요는 없습니다. 에 대한 -z옵션도 지정할 필요가 없습니다 xz. 기본값이기 때문입니다.

그것은 작동 gzip하고 bzip2너무 :

tar c some-dir | gzip > some-dir.tar.gz

또는

tar c some-dir | bzip2 > some-dir.tar.bz2

압축 해제도 매우 간단합니다.

xzcat tarball.tar.xz | tar x
bzcat tarball.tar.bz2 | tar x
zcat tarball.tar.gz | tar x

tar아카이브 만있는 경우 다음을 사용할 수 있습니다 cat.

cat archive.tar | tar x

파일 만 나열해야하는 경우을 사용하십시오 tar t.


xz 압축 옵션 사용

에 압축 옵션을 사용 xz하거나 tarMacOS에서 사용 하는 경우 tar -cJf구문 을 피할 수 있습니다.

에 따르면 man xz, 이렇게하는 방법은 다음과 같습니다.

tar cf - baz | xz -4e > baz.tar.xz

나는 Wojciech Adam Koszek의 형식을 좋아 했지만 정보 는 좋아하지 않았기 때문에 :

  1. c 지정된 파일에 대한 새 아카이브를 작성합니다.
  2. f디렉토리에서 읽습니다 ( -cf! = 때문에 두 번째로 가장 좋습니다 -fc)
  3. - 표준 출력으로 출력
  4. | 다음 명령으로 파이프 출력
  5. xz -4e압축 옵션을 xz사용하여 호출합니다 -4e. (과 동일 -4 --extreme)
  6. > baz.tar.xz tar 및 압축 파일을 baz.tar.xz

어디에 -4e, 자신의 압축 옵션을 사용하십시오. 나는 종종 원본 파일을 사용하고 실제로 압축하기 위해 사용 -k합니다 . 별도의 지시가없는 경우 기본적으로 압축 으로 설정 되지만 zip 으로 수동 설정 됩니다.--keep-9-zxz

압축을 풀고 untar하려면

Rafael van Horn 을 에코 하고 압축을 풀고 untar하려면 (아래 참고 참조) :

xz -dc baz.tar.xz | tar x

참고 : Rafael의 답변 과 달리 xz -dc대신을 사용하십시오 catxz. 이 문서를 스크립팅에 사용하는 경우 문서에서 권장합니다. -d또는 --decompress대신에 사용하는 습관을 갖는 것이 가장 좋습니다 unxz. 그러나 필요한 경우 명령 행에서 해당 명령을 사용하는 것이 좋습니다.


이 시도: tar -cf file.tar file-to-compress ; xz -z file.tar

노트 :

  1. tar.gz와 tar.xz는 동일하지 않습니다. xz는 더 나은 압축을 제공합니다.
  2. Don't use pipe | because this runs commands simultaneously. Using ; or & executes commands one after another.

참고URL : https://stackoverflow.com/questions/18855850/create-a-tar-xz-in-one-command

반응형