나는 많은 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