200개 이상의 파일이 들어 있는 .zip
폴더가 있습니다. 각 파일에는 여러 유형의 아카이브가 포함된 폴더가 하나만 있습니다(경우에 따라 이 폴더가 누락됨). 그 중에서 .jpg
or 파일 만 추출하고 싶습니다 .jpeg
. 파일의 구조는 zip
다음과 같습니다.
AAAA-99999-2015.zip
AAAA-99999-2015 (optional)
AAAA-99999-2015.jpg (or .jpeg)
AAAA-99999-2015.prj
AAAA-99999-2015.ecw
readme.txt
¿ 200개의 아카이브를 모두 수동으로 열지 않고도 이 작업을 자동화하려면 어떻게 해야 합니까?
답변1
당신은 이런 일을 할 수 있습니다
find . -type f -iname \*zip -print0 | xargs -0 --max-args=1 --replace unzip {} \*.jpg \*.jpeg
그러면 현재 폴더와 하위 폴더에서 "*.zip"이라는 파일을 찾은 다음 각 파일에 대해 --max-args=1
개별적으로 ( ) 명령을 호출하고 추가하여 추출할 파일을 선택합니다.unzip
\*.jpg \*.jpeg
*.jpeg
( 및 파일을 모두 선택했는데 *.jpg
그 중 일부가 존재하지 않으면 이에 대한 경고가 표시될 수 있습니다. unzip
이는 무시해도 됩니다.)
먼저 무슨 일이 일어나는지 테스트하려면 다음을 삽입하세요 echo
.
find . -type f -iname \*zip -print0 | xargs -0 --max-args=1 --replace echo unzip {} \*.jpg \*.jpeg
ZIP 파일의 위치에 상관없이 현재 폴더의 모든 파일을 추출하려면 다음 옵션을 추가 -j
하세요 unzip
.
find . -type f -iname \*zip -print0 | xargs -0 --max-args=1 --replace unzip -j {} \*.jpg \*.jpeg
-d foldername
에 액세스할 수도 있습니다 -j
.