gzip을 사용하여 전체 폴더를 압축할 수 있나요?

gzip을 사용하여 전체 폴더를 압축할 수 있나요?

유닉스에서 폴더를 압축하려고합니다. gzip 명령을 사용하여 수행할 수 있습니까?

답변1

아니요.

와 달리 압축 알고리즘으로 기능합니다 zip.gzip오직.

테이프 드라이브 시대로 거슬러 올라가는 여러 가지 이유 때문에 Unix는 데이터를 보관하는 프로그램을 사용하며 , 이 프로그램은 , , 등과 tar같은 압축 프로그램으로 압축할 수 있습니다.gzipbzip27zip

디렉토리를 "압축"하려면 올바른 명령은 다음과 같습니다.

tar -zcvf archive.tar.gz directory/ 

이것은 tar당신에게 말할 것입니다

  • 그것을 사용하여 압축(gzip) 알고리즘

  • (생성)에 있는 파일로부터 아카이브를 생성합니다.directory( tar기본적으로 재귀적임)

  • V(장황하게) 아카이브에 추가하는 모든 파일을 나열합니다(파이프된 명령에 영향을 주지 않도록 /dev/stderr에 있음).

  • 출력을 다음과 같이 저장합니다.에프(파일) 이름이 지정됨archive.tar.gz

tar명령은 순전히 사용자의 편의를 위해 플래그를 gzip통해 지원을 제공합니다 -z. 명령 gzip/lib는 완전히 별개입니다. 위의 명령은 사실상 다음과 동일합니다.

tar -cv directory | gzip > archive.tar.gz

현재 디렉토리에 아카이브의 압축을 풀고 압축을 풀려면

tar -zxvf archive.tar.gz

해당 명령은 사실상 다음과 동일합니다.

gunzip < archive.tar.gz | tar -xv

tar매우 많은 다른 옵션과 용도도 있습니다. 언젠가 맨페이지를 읽어 보시기를 진심으로 권합니다.

답변2

스위치를 사용할 때 이 gzip명령은 디렉터리를 단일 zip 파일로 재귀적으로 압축하지 않습니다 -r. 오히려 해당 디렉토리 구조를 살펴보고 찾은 각 파일을 별도의 파일로 압축합니다.

~ 전에

$ tree dir1/
dir1/
|-- dir11
|   |-- file11
|   |-- file12
|   `-- file13
|-- file1
|-- file2
`-- file3

이제 gzip명령 을 실행하십시오

$ gzip -r dir1

~ 후에

$ tree dir1/
dir1/
|-- dir11
|   |-- file11.gz
|   |-- file12.gz
|   `-- file13.gz
|-- file1.gz
|-- file2.gz
`-- file3.gz

디렉토리 구조를 압축하고 싶다면 tar명령을 사용한 다음 결과 .tar파일을 압축하는 것이 좋습니다.

$ tar zcvf dir1.tar.gz dir1/

$ tar zcvf dir1.tar.gz dir1/
dir1/
dir1/file1
dir1/file2
dir1/dir11/
dir1/dir11/file11.gz
dir1/dir11/file12.gz
dir1/dir11/file13.gz
dir1/file3

결과적으로 다음과 같은 단일 파일이 생성됩니다.

$ ls -l | grep tar
-rw-rw-r-- 1 saml saml  271 Oct  1 08:07 dir1.tar.gz

내용을 확인할 수 있습니다:

$ tar ztvf dir1.tar.gz 
drwxrwxr-x saml/saml         0 2013-10-01 08:05 dir1/
-rw-rw-r-- saml/saml         0 2013-10-01 07:45 dir1/file1
-rw-rw-r-- saml/saml         0 2013-10-01 07:45 dir1/file2
drwxrwxr-x saml/saml         0 2013-10-01 08:04 dir1/dir11/
-rw-rw-r-- saml/saml        27 2013-10-01 07:45 dir1/dir11/file11.gz
-rw-rw-r-- saml/saml        27 2013-10-01 07:45 dir1/dir11/file12.gz
-rw-rw-r-- saml/saml        27 2013-10-01 07:45 dir1/dir11/file13.gz
-rw-rw-r-- saml/saml         0 2013-10-01 07:45 dir1/file3

답변3

"[Linux에서] gzip을 사용하여 전체 폴더를 압축할 수 있습니까?"라는 질문에 대한 답변입니다. zip다음 구문을 사용하여 gzip 대신 프로그램을 사용할 수 있다는 것입니다 .

zip -r <zip file name> <folder to zip>

답변4

나는 pigz(GZip의 병렬 구현)

tar -cvf - dir | pigz -9 > /path/to/dir.tar.gz

관련 정보