Shell script para cópia "inteligente"

Shell script para cópia "inteligente"

Estou trabalhando em um script de shell. Em segundo plano: gravei muitas músicas da rádio com meu Mac. Cada música é um *.eyetv“arquivo” no meu mac. Na verdade, esses "arquivos" são apenas pastas, contendo um .mpgarquivo com um nome enigmático 00000000144ad5e9.mpge alguns metadados.

As gravações são organizadas em algumas pastas, cada uma contendo cerca de 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 depois copia os mpgs para elasrenomear-los para o nome de seu diretório pai.

Estrutura de diretório 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

Responder1

Você pode usar mcp:

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

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

sudo apt-get install mmv

Verman mmvpara mais informações.

informação relacionada