bash는 zip 파일에서 부분 디렉토리 구조를 추출합니다.

bash는 zip 파일에서 부분 디렉토리 구조를 추출합니다.

고객은 고객의 OUTPUT 디렉터리에서 대용량(1.5gig, >10,000개 파일) zip 파일과 해당 디렉터리 구조를 제출합니다. 전체 디렉토리 구조가 아닌 디렉토리 구조를 유지하면서 bash를 INPUT 디렉토리에 압축을 풀고 싶습니다.

예를 들어 zip 파일에 다음 파일이 포함되어 있는 경우:

/home/base/data/output/able/file1.xml
/home/base/data/output/able/file2.xml
/home/base/data/output/able/file3.xml
/home/base/data/output/baker/file1.xml
/home/base/data/output/baker/file2.xml
/home/base/data/output/baker/file3.xml
/home/base/data/output/charlie/file1.xml
/home/base/data/output/charlie/file2.xml
/home/base/data/output/charlie/file3.xml

(이것은 약 12개의 고유 디렉토리에 있는 수천 개의 파일에 대해 작동합니다.)

다음과 같이 INPUT 디렉토리에 추출하고 싶습니다.

../input/able/file1.xml
../input/able/file2.xml
../input/able/file3.xml
../input/baker/file1.xml
../input/baker/file2.xml
../input/baker/file3.xml
../input/charlie/file1.xml
../input/charlie/file2.xml
../input/charlie/file3.xml

지금까지 나는 다음을 시도했습니다.

unzip BIGFILE.zip   /output/   input

--(*) /출력/전후

able/baker/charlie동일한 디렉토리 구조를 가진 모든 xml 파일의 압축을 풉니다 . 그러나 /output 이전에 전체 파일 구조의 압축도 풀립니다.

../input/home/base/data/output/able/file1.xml
../input/home/base/data/output/able/file2.xml
../input/home/base/data/output/able/file3.xml
../input/home/base/data/output/baker/file1.xml
../input/home/base/data/output/baker/file2.xml
../input/home/base/data/output/baker/file3.xml
../input/home/base/data/output/charlie/file1.xml
../input/home/base/data/output/charlie/file2.xml
../input/home/base/data/output/charile/file3.xml

한 번에 모든 작업을 수행하는 것이 불가능할 수도 있지만 부분 디렉터리에서 수천 개의 파일을 읽은 다음 특정 디렉터리에 압축을 풀 수 있는 스크립트를 찾지 못했습니다. 어떤 아이디어가 있나요?

관련 정보