Eu tenho vários arquivos RAR espalhados por vários diretórios, mas todos em uma pasta raiz específica no meu NAS baseado no Debian. Alguém poderia me ajudar a escrever um script simples que recursivamente fosse para cada pasta, irradiasse o conteúdo, voltasse para a pasta pai e passasse para o próximo diretório? Assim:
cd Photos/Summer/Italy/
unrar e Italy.rar
wait
cd ../France/
unrar e France.rar
wait
etc...
Então, aponte-o para a pasta raiz "Fotos" e passe por ele irradiando tudo no caminho ...
Por exemplo, estrutura de diretório:
*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
script
nas
shell-script
rar
Touff
fonte
fonte
unrar
possui recursão interna usando o-r
Recurse subdirectories
switch.unrar x -r <parent directory>
Extrai o conteúdo de todos os subdiretórios<parent directory>
em cada subdiretório, mantendo qualquer estrutura de diretório existente nos.rar
arquivos. Use eme
vez dex
se a estrutura de diretório não for desejada.fonte
<parent directory>
. Ele não colocará os arquivos extraídos no subdiretório ao lado dos.rar
arquivos. Portanto, depende do resultado desejado. O OP não foi específico neste caso. Às vezes, sua resposta é útil para mim, mas outras vezes eu preciso dafind
resposta.Se você deseja mover as fotos não enviadas para outro destino, basta digitar o destino no final, desta forma:
find source_dir/ -name '*.rar' -execdir unrar e -o- {} /new/destination_dir/ \;
fonte