Recursivo unrar de várias pastas

8

Eu tenho vários arquivos RAR espalhados por vários diretórios, mas todos sob uma pasta raiz particular no meu NAS baseado em Debian. Alguém poderia me ajudar a escrever um script simples que entraria recursivamente em cada pasta, unrar o conteúdo, voltar para a pasta pai e ir para o próximo diretório? Então:

cd Photos/Summer/Italy/
unrar e Italy.rar
wait
cd ../France/
unrar e France.rar
wait
etc...

Então, basta apontar para a pasta raiz "Fotos" e passar o tempo todo por infravermelho ...

Por exemplo, estrutura de diretórios:

*Photos:
 -Summer
  --Italy
   ---Italy.rar
   ---Italy.r01
   ---Italy.r02
  --France
   ---France.rar
   ---France.r01
   ---France.r02
 -Winter
  --Siberia
   ---Siberia.rar
   ---Siberia.r01
   ---Siberia.r02
  --Canada
   ---Snow.rar
   ---Snow.r01
   ---Snow.r02
    
por Touff 11.04.2012 / 02:06

3 respostas

14
find Photos/ -name '*.rar' -execdir unrar e {} \; 
    
por 11.04.2012 / 02:09
3

unrar tem recursão incorporada usando a opção -r Recurse subdirectories .

unrar x -r <parent directory> Extrai o conteúdo de todos os subdiretórios em <parent directory> em cada subdiretório, mantendo qualquer estrutura de diretório existente nos arquivos .rar . Use e em vez de x se a estrutura do diretório não for desejada.

    
por 02.04.2016 / 18:52
1

Se você quiser mover as fotos não desejadas para outro destino, basta digitar o destino no final, assim:

find source_dir/ -name '*.rar' -execdir unrar e -o- {} /new/destination_dir/ \;

    
por 14.05.2013 / 19:56