하나의 명령줄에서 cat, tar 및 gzip을 사용하여 .tar.gz 파일의 압축을 풀고 아카이브를 해제하려면 어떻게 해야 합니까? 가능합니까?
답변1
필요하지 cat
않거나 gzip
:
$ tar xvzf archive.tar.gz
tar
압축( ) 플래그 다음에 자세한 모드( )로 아카이브를 추출( ) 하도록 나타내는 옵션 문자열입니다 .x
v
z
f
모두 사용 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
.