Linux 서버에서 tar를 사용하는 Zip 파일

Linux 서버에서 tar를 사용하는 Zip 파일

일부 파일로 zip 파일을 만들려고 하는데 zip을 추출하면 파일이 1개만 생성됩니다.

tar cfvz test.zip file1.mp3 file2.mp3 file3.jpg

그리고 test.zip을 추출한 후에는 "테스트" 파일만 얻습니다. zip 크기는 괜찮습니다. 추출 시 동일한 파일을 얻도록 이 작업을 수행하는 방법을 모르겠습니다:"file1.mp3 파일2.mp3 파일3.jpg"

답변1

이것은 나에게 효과적이었습니다.

$ tar -czvf test.tar.gz ./file1 ./file2 ...

$ tar -tzf test.tar.gz
./file1
./file2

# to extract do:
$ tar -xzf test.tar.gz

옵션을 전달한 후 f생성 중인 아카이브의 파일 이름을 제공해야 합니다.

zip아, 그리고 파일의 압축을 풀기 위해 사용하는 경우에는 디렉토리를 얻지 못하지만 대신 tarball을 얻게 됩니다. Tarball에는 모든 파일이 포함되어 있습니다. 사용:

tar -xf test

그리고 모든 파일을 볼 수 있습니다.

갖고 싶다면정상zip 파일을 사용하려면 / tandem zip대신 명령을 사용하세요 . 또한 올바른 파일 접미사를 추가하는 것이 좋습니다.targz

  • gzip이 포함된 tar(예 tar czvf ...: ): filename.tar.gz
  • bzip2가 포함된 tar(예: tar cjvf ...): filename.tar.bz2
  • 압축하지 않은 tar(예: tar cvf ...): filename.tar

답변2

첫째, 압축 파일 이름을 로 지정했더라도 .zipZIP 파일이 아니라 TAR 및 GZIP 파일이므로 사용할 올바른 파일 확장자는 .tar.gz또는 입니다 .tgz.

이제 압축 파일을 추출하는 데 사용한 명령은 무엇입니까? ZIP 유틸리티를 사용했다면 확장자 때문에 혼동을 느껴 압축을 풀지 않고 파일만 압축해제했을 수도 있습니다. 이는 결과가 실제로 TAR 파일인 단일 파일인 이유를 설명합니다. untar 유틸리티(또는 명령 tar -xf test)를 사용하는 경우 내부에서 모든 파일을 가져와야 합니다.

답변3

당신이해야 할 파일을 추출하려면

tar xvfz test.zip 

기본적으로 모든 파일은 현재 위치를 기준으로 한 경로에서 나타납니다. 따라서 test.zip에 myfile.txt dir1/myfile.txt가 포함되어 있으면 두 파일 모두 zip으로 나옵니다.

관련 정보