큰 zip 파일을 그 자체로 압축 해제

큰 zip 파일을 그 자체로 압축 해제

20Gb 아카이브의 압축을 풀고 싶지만 추가로 20-30Gb의 HDD 여유 공간이 없습니다. 이 파일을 그 자체로 압축해제할 수 있습니까?

따라서 압축을 풀면 해당 zip 파일이 삭제되고 압축이 풀린 콘텐츠가 있게 됩니다.

답변1

zip과 마찬가지로 unzip(이동) 스위치는 없지만 -m아카이브에서 파일을 하나씩 추출하고 추출 후 즉시 삭제할 수 있습니다.

나는 OS X에 대해 잘 모르지만 Ubuntu의 Bash에서 작동합니다.

IFS=$'\n'

for file in `zipinfo -Z1 ZIPFILE`; do
    unzip ZIPFILE $file && zip -d ZIPFILE $file
done

rm ZIPFILE

unset IFS
  • IFS=$'\n'내부 필드 구분 기호를 줄 바꿈으로 설정하므로 공백이 포함된 파일 이름이 올바르게 처리됩니다.

  • zipinfo -Z1 ZIPFILE의 내용을 나열합니다.압축 파일, 한 줄씩.

  • for file in `...`; do ??? done의 출력을 반복하고 ...변수를 설정합니다.파일명령의 출력을 한 줄로 만들고 실행합니다 ???.

  • unzip ZIPFILE $file && zip -d ZIPFILE $file다음에 지정된 파일을 추출합니다.파일zip 파일에서 삭제하고 아카이브( zip -d)에서 삭제합니다.

    여기에서는 &&첫 번째 명령이 성공적으로 종료된 경우에만 두 번째 명령이 실행되는지 확인합니다.

  • rm ZIPFILE(빈) 아카이브를 제거합니다.

  • unset IFS내부 파일 구분 기호의 기본값을 복원합니다.

답변2

나는 그것이 불가능하다고 믿습니다. 귀하의 경우 추출된 콘텐츠를 전송하려면 추가 저장 매체가 필요합니다. 또는 zip을 이동하여 하드 드라이브에 추출하세요.

관련 정보