중첩된 RAR 파일의 압축을 푸는 방법은 무엇입니까?

중첩된 RAR 파일의 압축을 푸는 방법은 무엇입니까?

나는 많은 RAR 파일을 포함하는 재귀적 디렉토리 구조를 가지고 있습니다. 나는 unrar포함된 모든 파일을 현재 작업 디렉터리로 추출하기 위해 이 명령을 사용해 왔습니다 .

unrar e -r -o- *.rar

괜찮아요. 그러나 일부 RAR 파일에는 위 명령으로 추출된 다른 RAR 파일이 포함되어 있습니다. 문제는 추출된 RAR이 초기 검색의 일부가 아니기 때문에 추출된 RAR 파일의 내용이 추출되지 않는다는 것입니다.

이 문제를 어떻게 해야 할까요? RAR 파일의 첫 번째 부분을 삭제하고 새로 검색하고 싶지 않습니다. 나는 Bash에 능숙하지 않지만(또는 아마도 #!/bin/sh -xu이것은 스크립트의 shebang일 수도 있습니다), 첫 번째에서 검색한 파일 이름을 저장하고 두 번째 명령에서 제외하고 싶다고 생각합니다. (최대 깊이는 RAR 내의 RAR입니다.) 더 우아한 솔루션이 있습니까?

미리 감사드립니다, 빅터님.

편집하다:

@icarus가 제안한 솔루션을 사용해 보세요.

mkdir unrar
cd unrar
unrar e -r -o- ../*.rar
set -- *.rar
[ -e "$1" ] && unrar e -r -o- *.rar

답변1

rar 아카이브를 찾으려면 쉘(또는 찾기)을 사용하십시오. 첫 번째 그룹을 새 디렉터리에 추출한 다음 해당 디렉터리에 있는 모든 그룹의 압축을 풉니다.

#!/bin/bash
shopt -s nullglob globstar
mkdir unrar
cd unrar
for i in ../**/*.rar ; do unrar e -o- "$i" ; done
for i in **/*.rar ; do unrar e -o- "$i" ; done

관련 정보