Minha biblioteca do iTunes está em um NAS (WD MyCloud 4TB), e eu tenho um número de séries de TV, organizado pela biblioteca do iTunes no habitual:
Pasta "Programas de TV":
TV Show 1
|------------- Series 1
|-----------01 Episode Name.m4v
|-----------02 Episode Name.m4v
|...
|------------- Series 2
|-----------01 Episode Name.m4v
|...
|...
TV Show 2
|------------- Series 1
|-----------01 Episode Name.m4v
|-----------02 Episode Name.m4v
|...
|------------- Series 2
|-----------01 Episode Name.m4v
|...
|...
Eu vinculei toda a pasta de TV a outra pasta, chamada Infuse. Essa pasta será lida pelo aplicativo Infuse no meu Apple TV [isso me permite evitar um computador com o iTunes permanentemente ligado], então preciso renomear todos os arquivos com link físico como tal:
TV Show 1
|------------- Series 1
|-----------TV Show 1 - S0101 Episode Name.m4v
|-----------TV Show 1 - S0102 Episode Name.m4v
|...
|------------- Series 2
|-----------TV Show 1 - S0201 Episode Name.m4v
|...
|...
TV Show 2
|------------- Series 1
|-----------TV Show 2 - S0101 Episode Name.m4v
|-----------TV Show 2 - S0102 Episode Name.m4v
|...
|------------- Series 2
|-----------TV Show 2 - S0201 Episode Name.m4v
|...
|...
Eu até agora encontrei a solução (por exemplo, o programa de TV 1, a pasta da primeira temporada):
cd
em cada pasta de temporada para cada show e execução
for f in *; do mv $f "TV Show 1 E01S$f"; done
mas isso é realmente demorado, pois preciso
cd ../Season 2/
for f in *; do mv $f "TV Show 1 E02S$f"; done
cd ../Sesaon 3/
...
cd ../../TV Show 2/Season 1/
for f in *; do mv $f "TV Show 2 E01S$f"; done
...
e o ideal é criar um script para extrair o nome do diretório dos avós e o número da temporada do diretório pai para que eu possa escrever um pequeno script e executá-lo. Algo como:
#!/bin/bash
a=[TV Show folder]
b=[Season folder]
c=[each episode]
for c in each a/b/
mv $c "$a - S0$bE$c" (or) rename $c "$a - S0$bE$c"
done
Você pode me ajudar a implementá-lo com vários loops for ou comando específico?