Script de shell para cópia "inteligente"

0

Estou trabalhando em um script de shell. Para o backgroud: gravei muitas músicas da rádio com o meu Mac. Cada música é um *.eyetv "arquivo" no meu mac. Na verdade, esses "arquivos" são apenas pastas, contendo um arquivo .mpg com um nome de arquivo criptográfico como 00000000144ad5e9.mpg e alguns metadados.

As gravações são organizadas em algumas pastas, cada uma contendo 20 gravações (um CD de áudio). Todas essas pastas estão em um NAS.

Estou tentando escrever um script, que cria pastas no meu mac e copia os mpgs neles renomeando para o nome do diretório pai.

Estrutura de diretórios no NAS para a música de exemplo " Set fire to the Rain ": /music/recordings1/Set Fire to the Rain - ADELE.eyetv/00000000144ad5e9.mpg (e alguns metadados para EyeTv)

Estrutura desejada no meu disco rígido após a cópia: / home/me/music/recordings1/Set fire to the Rain.mpg

Meu código (não está funcionando) até agora:

dirname=$(basename 'pwd | tr ' ' '_''.eyetv)
mkdir ~/Musik/$dirname
find . -name '*.eytv' | xargs -0 -i cd {} | find . -name ????????????????.mpg -print0 | xargs -0 -i cp -v {} ~/Musik/$dirname/$(basename 'pwd | tr ' ' '_''.mpg)

Saudações e obrigado antecipadamente, Markus

    
por Markus 11.11.2013 / 20:24

1 resposta

0

Você pode usar mcp :

mcp -v '/music/recordings1/* - *.eyetv/*.mpg' '/home/me/music/recordings1/#1.mpg'

mcp está incluído no pacote mmv . Por padrão, mmv não está instalado no Ubuntu, mas você pode instalá-lo a partir do terminal usando o seguinte comando:

sudo apt-get install mmv

Veja man mmv para mais informações.

    
por Radu Rădeanu 11.11.2013 / 21:04