하나의 명령줄에서 cat, tar 및 gzip을 사용하여 .tar.gz 파일 압축 풀기

하나의 명령줄에서 cat, tar 및 gzip을 사용하여 .tar.gz 파일 압축 풀기

하나의 명령줄에서 cat, tar 및 gzip을 사용하여 .tar.gz 파일의 압축을 풀고 아카이브를 해제하려면 어떻게 해야 합니까? 가능합니까?

답변1

필요하지 cat않거나 gzip:

$ tar xvzf archive.tar.gz

tar압축( ) 플래그 다음에 자세한 모드( )로 아카이브를 추출( ) 하도록 나타내는 옵션 문자열입니다 .xvzf

모두 사용 cat,tar 그리고 gzip(이건 바보같아이러지 마세요):

$ cat archive.tar.gz | gzip -d -c | tar xvf -

또는

$ gzip -d -c archive.tar.gz | cat | tar xvf -

-파일 이름으로 주어지면 tar아카이브는 표준 입력에서 읽혀집니다.

마지막 두 가지 예는 파이프라인의 다음 부분으로 데이터를 섞는 일만 남았 cat기 때문에 일반적으로 "낭비 사용" 이라고 불리는 문제가 발생합니다 .cat

다음이 없는 약간 더 나은 버전 cat:

$ gzip -c -d archive.tar.gz | tar xvf -

실제로 tar압축된 아카이브를 처리하는 방법을 모르는 시스템에서 이 작업을 수행하는 방법을 아는 것은 유용할 수 있습니다.

위에서 사용한 고대 옵션 문자열( tar앞에 대시( )가 없음)은 대시가 명령줄 옵션을 지정하는 데 일반적으로 사용되기 전의 것입니다. -일반 옵션 구문을 사용하지 않는 다른 유틸리티로는 dd및 가 mt있지만 tar오늘날 대부분의 구현은분명한최신 대시 옵션은 dd일반적으로 그렇지 않습니다. 명령 mt(테이프 작업 제어)에는 일부 대시 옵션(특히 Linux에서)이 있지만 명령줄에서 선택 사항이 아닌 유일한 부분은 여전히 ​​드라이브에서 실행하려는 명령(예: rewind또는 ) 입니다 eof.

관련 정보