zip 아카이브의 내용을 동시에 추출하고 삭제하는 방법은 무엇입니까?

zip 아카이브의 내용을 동시에 추출하고 삭제하는 방법은 무엇입니까?

단일 파일 형식의 여러 개의 작은 파일이 포함된 대용량 zip 아카이브(>180GB)를 SSD에 다운로드하여 추출하고 싶지만 zip 아카이브와 추출된 콘텐츠를 모두 수용할 만큼 저장 공간이 충분하지 않습니다. 답변에 언급된 zip 명령을 사용하여 아카이브에서 개별 파일을 추출하고 삭제할 수 있다는 것을 알고 있습니다.여기그리고여기. 또한 명령을 사용하여 archive에 있는 모든 파일의 이름을 가져와서 unzip -l위와 같이 결과를 배열에 저장할 수도 있습니다.여기, 주어진 방법을 사용하여 불필요한 값을 필터링합니다.여기, 위와 같이 BASH에서 반복합니다.여기. 따라서 최종 논리는 다음과 같습니다.

  1. unzip -l아카이브에 있는 단일 파일 확장자와 일치하는 정규식을 사용하여 zip 파일의 내용을 나열하고 bash 배열에 파일 이름을 저장합니다.
  2. 파일 이름 배열을 반복하고 unzip -j -dzip -d명령을 사용하여 개별 파일을 지속적으로 추출하고 삭제합니다.

필요한 시간, 논리적 복잡성 및 계산 리소스 측면에서 이 접근 방식이 얼마나 실현 가능합니까? 특히 대용량 아카이브의 경우 개별 파일을 삭제하고 추출하는 효율성이 걱정됩니다. 이 접근 방식에 대한 피드백이나 의견이 있으면 듣고 싶습니다. 모든 도움에 미리 감사드립니다.

답변1

내가 아는 한, 아카이브에서 파일을 삭제하려면 zip아카이브보다 두 배의 공간이 필요할 수 있습니다. 따라서 USB 스틱을 연결하고 거기에 아카이브를 저장하는 것이 좋습니다. 그런 다음 파일을 SSD로 추출하고 필요하지 않은 경우 아카이브를 삭제하십시오.

답변2

zip 파일인 경우:

  • 신뢰할 수 있는 콘텐츠를 포함합니다.
  • URL을 통해 이용 가능
    • 안정적인 인터넷 연결에서

그 다음에답은 여기에 있습니다도움이 될 수도 있습니다.

즉, 스트림에서 압축을 풀 수 있는 프로그램을 사용하십시오.

예를 들어:

cd /place/to/store/data
curl https://www.example.org/input.zip | busybox unzip -
cd /place/to/store/data
curl https://www.example.org/input.zip | bsdtar xvf -

관련 정보