나는 여러개의 zip 파일을 가지고 있는데, bash 스크립트를 사용하여 특정 파일의 압축을 자동화하는 중이다. 내가 원하는 파일의 이름을 알고 있지만 폴더 이름을 모른다. 하나의 폴더 깊이입니다이름이 알려지지 않은 폴더에서 압축을 풉니 다?
어떻게 이러한 파일을 추출 할 수 있습니까? 폴더를 삭제하는 것이 좋습니다.
나는 여러개의 zip 파일을 가지고 있는데, bash 스크립트를 사용하여 특정 파일의 압축을 자동화하는 중이다. 내가 원하는 파일의 이름을 알고 있지만 폴더 이름을 모른다. 하나의 폴더 깊이입니다이름이 알려지지 않은 폴더에서 압축을 풉니 다?
어떻게 이러한 파일을 추출 할 수 있습니까? 폴더를 삭제하는 것이 좋습니다.
unzip somefile.zip "*/blah.txt"
을 사용해 보셨습니까?
unzip -j somezip.zip *somefile.txt
을 -j zip 파일의 폴더 구조를 정크 별표 일치하는 와일드 카드를 제공합니다
여기에 어떤 깊이에서 특정 파일의 압축을 풀고 밖으로 방식의 폴더 경로를 정크하는 방법 어떤 경로를 따라.
find /path/to/root/ -name 'zipname.zip' -print0 | xargs -0 unzip
print0
그들에 공백을 가진 파일 또는 경로와 함께 작동하도록 명령을 할 수 있습니다 :
find
를 사용할 수
및 xargs
은 압축 해제 호출합니다. -0
은 xargs
의 옵션으로 print0
과 호환됩니다.
당신은에 있다면 :
some_directory/
와 zip 파일 말, 하위 디렉토리의 수에 있습니다
some_directory/foo는
find ./ -name myfile.zip -exec unzip {} -d /directory \;
편집 :로 두 번째 부분에 대해 내가 가정 한 zip 파일이 들어있는 디렉토리를 제거 하시겠습니까?
find ./ -name myfile.zip -exec unzip {} -d /directory \; -exec echo rm -rf `dirname {}` \;
"echo." 그것은 위생 검사입니다. 나는 항상 이와 같은 루프/반복 시퀀스에서 rm -rf와 같은 파괴적인 것을 실행할 때 먼저 echo한다. 행운을 빕니다!
전화하세요. 나는 그가 하나의 우편 번호 안에 특정 하위 폴더를 요구하고 있다는 것을 잘못 읽고 있지만, 맞다. 그는 알려지지 않은 파일 시스템 하위 폴더 안에 특정 zip 파일을 요구하고있다. – davidethell