압축을 해제하면 폴더가 아닌 파일이 생성됩니다 6 건 (전체 크기 = 2GB) 압축

내가 사용하는 파일 6 건 (전체 크기 = 2GB) 압축 gzip -c myfiles_* > ~/myzip.gzip서버 A에와 지금은 파일 이름이 지정되어있을 가능성 배운 서버 B에이 서버를 복사 할 내 친구가 있는데 .gz그래서 사용하여 파일을 이름 mv. 서버 B의 파일 크기 .gzip가 서버 A 의 원본 파일 크기와 동일한 지 확인 했습니다. 그런 다음 나는 달렸다 gunzip myzip.gz.

결과는 내 파일을 포함하는 폴더가 아니라 myfiles확장명이없는 단일 파일 입니다. 파일 크기는 초기 파일과 크기가 같으므로 모든 파일이이 단일 파일로 컴파일되었습니다. 이 단일 파일에서 파일을 다시 추출하려면 어떻게합니까?

아시다시피, 저는 여전히 리눅스를 처음 접합니다.



답변

나는 6 개의 파일 (총 크기 = 2gb)을 사용하여 압축하여 gzip -c myfiles_* >
~/myzip.gzip
친구 가이 서버를 다른 서버에 복사하도록했습니다. 이제 아카이브의 이름을 지정해야한다는 것을 알았으므로을 .gz사용하여 파일 이름을 바꿨습니다 mv. 그런 다음 나는 달렸다 gunzip myzip.gz.

당신이보고있는 결과는 정확히 당신이 만든 것입니다. GZip은 압축시 디렉토리 구조를 유지하지 않습니다. 파일 / 데이터 만 압축합니다. 따라서이 명령을 실행할 때 :

gzip -c myfiles_* > ~/myzip.gzip

모든 GZip은 찾은 모든 파일 myfiles_*을 하나의 큰 얼룩으로 연결하고 압축했습니다 ~/myzip.gzip. 파일 확장명이 잘못되었다는 사실은 파일의 이름을 바꾸는 것만으로도 문제를 해결할 수 있지만 기본 아카이브는 여전히 하나의 큰 파일 덩어리입니다.

지금 복구하는 방법은? 문제가 초기 GZip 논리에 있었기 때문에 확신 할 수 없습니다. 내가 지금 당신에게 줄 유일한 권장 사항은 정사각형으로 시작하여 이와 같은 TAR / GZipped 아카이브를 만드는 것입니다.

TAR / GZipped 파일 작성

먼저이 TAR 명령을 실행하십시오.

tar -cf myzip.tar myfiles_*

그러면 myzip.tar패턴을 사용하여 시스템에서 찾은 파일로 구성된 새 TAR 아카이브가 작성 됩니다 myfiles_*.

이제 완료되면 다음과 같이 해당 TAR 아카이브를 GZip 할 수 있습니다.

gzip myzip.tar

이것은 Mac OS X 에서이 작업을 처리하는 프로세스이지만 대부분의 Linux 시스템에서 사용하는 GNU 버전의 TAR을 사용하는 경우이 명령을 실행하여 두 단계를 하나로 통합 할 수 있습니다.

tar -cfz myzip.tar.gz

z옵션 이 추가 되었습니까? 이것은 TAR에게 아카이브를 만들 때 GZip에게 아카이브를 지시합니다.

TAR / GZipped 파일의 압축 해제 및 아카이브 해제

완료되면이라는 이름의 새 아카이브가 생성됩니다 myzip.tar.gz. 필요한 곳으로 옮기고 다음과 같이 TAR 명령을 사용하여 압축을 푸십시오.

tar -xf myzip.tar.gz

TAR은 오늘날 아카이브 프로세스의 일부로 GZip 압축을 감지 할만큼 충분히 똑똑하므로 TAR 아카이브를 압축 해제 한 다음 해당 TAR 아카이브의 컨텐츠를 다시 추출하여 소스와 관계없이 파일 및 디렉토리 구조와 정확히 일치시킵니다. 로 시작하십시오.


답변