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

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

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

답변1

아니요.

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

여러 가지 이유로(일부는 테이프 드라이브 시대로 거슬러 올라갑니다) Unix는 아카이브 데이터라는 프로그램을 사용합니다 . 이 프로그램은 tar, , 와 같은 압축 프로그램을 사용하여 압축 할 수 gzip있습니다 .bzip27zip

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

tar -zcvf archive.tar.gz directory/ 

이것이 tar말해 줄 것이다

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

  • (만들기) 다음에서 아카이브directory( tar기본값은 재귀적입니다)

  • V아카이브에 추가하는 모든 파일을 (세부적으로) (/dev/stderr에서, 파이프된 명령에 영향을 주지 않도록) 나열합니다.

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

tar명령은 순전히 사용자의 편의를 위해 플래그를 gzip통해 지원을 제공합니다 -z. /lib 명령 gzip은 완전히 독립적입니다. 위의 명령은 실제로 다음과 같습니다.

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

관련 정보