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을 이동하여 하드 드라이브에 추출하세요.