tar를 사용하여 Linux 서버에서 파일 압축

tar를 사용하여 Linux 서버에서 파일 압축

몇몇 파일로 zip 파일을 만들려고 하는데 zip 압축을 풀면 파일이 1개만 나오네요.

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

test.zip을 추출한 후에는 "테스트" 파일만 얻습니다. zip 크기는 괜찮습니다. 추출할 때 동일한 파일을 얻을 수 있도록 이 작업을 수행하는 방법을 모르겠습니다: "file1.mp3 file2.mp3 file3.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디렉토리는 얻지 못하지만 타르볼은 얻게 됩니다. 타르볼에는 모든 파일이 포함되어 있습니다. 사용:

tar -xf test

모든 파일이 표시되어야 합니다.

갖고 싶다면정상zip 파일인 경우 / tandem zip대신 명령을 사용하십시오 . 올바른 파일 접미사를 추가하는 것도 좋은 습관입니다.targz

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

답변2

우선, 압축파일 이름을 로 지정했는데도 .zipZIP 파일이 아니고 TAR, GZIP 파일이므로 사용해야 할 올바른 파일 확장자는 .tar.gz또는 입니다 .tgz.

이제 zip 파일의 압축을 풀 때 사용하는 명령은 무엇입니까? ZIP 유틸리티를 사용하면 확장자에 혼동을 주어 파일의 압축을 풀지 않고 압축만 풀게 되는 경우가 있습니다. 이는 결과가 실제로 TAR 파일인 파일인 이유를 설명합니다. untar 유틸리티(또는 명령 tar -xf test)를 사용하는 경우 내부에서 모든 파일을 다시 가져와야 합니다.

답변3

실행해야 할 파일을 추출하려면

tar xvfz test.zip 

기본적으로 모든 파일은 사용자 위치와 관련된 경로에서 추출되므로 test.zip에 myfile.txt dir1/myfile.txt가 포함되어 있으면 두 파일 모두 zip에서 추출됩니다.

관련 정보