여러 zip 파일을 다시 압축하는 방법

여러 zip 파일을 다시 압축하는 방법

재귀적으로 다시 압축해야 하는 기본 디렉터리에 여러 개의 zip 파일이 있습니다. 이러한 파일에는 공백, 아포스트로피, 밑줄 등이 있습니다.

advzip지원되지 않는 압축 방법(다시 압축해야 하는 이유)에 대해 불평하므로 작동하지 않습니다. 이 모든 파일의 압축이 풀리면 수천 개가 있으므로 일부 자동화를 통해 다시 압축/압축하면 됩니다.

파일은 원래 노래방 라이브러리용 MP3+G 도구를 사용하여 Windows에서 생성되었습니다.

OS: Linux Mint 18
스크립트 작성: 초보자

for file in *.zip
do
 unzip -j "$file"
 rm -f "$file"
 zip -mq "$file" *.mp3 *.cdg *.MP3 *.CDG *.Mp3 *.Cdg
 rm -f *.mp3 *.cdg *.MP3 *.CDG *.Mp3 *.Cdg
done

위는 내가 찾고 있는 것입니다. 그러나 나는 스크립트에 능숙하지 않기 때문에 하위 디렉토리의 모든 zip에 대해서도 스크립트를 만드는 방법을 잘 모르겠습니다. 파일 이름의 예:

SC0000-01 - Someone - Something.zip

zip 파일은

SC0000-01 - Someone - Something.cdg
SC0000-01 - Someone - Something.mp3

답변1

advzip을 언급할 때 나는 당신이 Linux를 사용한다고 가정합니다. 여기에서 각 파일을 반복하는 간단한 스크립트를 작성할 수 있습니다.

for f in *; 
 do; 
 unzip $f; 
done

이것이 도움이 되기를 바랍니다. 그렇지 않은 경우 좀 더 자세한 내용을 제공하는 것이 좋습니다.

답변2

내가 이것을 필요한 것보다 더 복잡하게 만들지 않는 한:

find . -name "*.zip" -print0 | while read -d $'\0' file
do
 unzip -j "$file"
 rm -f "$file"
 zip -mq "$file" *.mp3 *.cdg *.MP3 *.CDG *.Mp3 *.Cdg
 rm -f *.mp3 *.cdg *.MP3 *.CDG *.Mp3 *.Cdg
done

관련 정보