Script de Shell para copia "inteligente"

Script de Shell para copia "inteligente"

Estoy trabajando en un script de shell. Al fondo: grabé muchas canciones de la radio con mi Mac. Cada canción es un *.eyetv"archivo" en mi mac. En realidad, estos "archivos" son solo carpetas que contienen un .mpgarchivo con un nombre de archivo críptico 00000000144ad5e9.mpgy algunos metadatos.

Las grabaciones están organizadas en unas cuantas carpetas, cada una de las cuales contiene como 20 grabaciones (un CD de audio). Todas estas carpetas están en un NAS.

Estoy intentando escribir un script que crea carpetas en mi Mac y luego copia los mpg en ellas.renombraral nombre de su directorio principal.

Estructura de directorios en el NAS para la canción de ejemplo " Set fire to the Rain": /music/recordings1/Set Fire to the Rain - ADELE.eyetv/00000000144ad5e9.mpg(y algunos metadatos para EyeTv)

Estructura deseada en mi disco duro después de copiar: /home/me/music/recordings1/Set fire to the Rain.mpg

Mi código (no funciona) hasta ahora:

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)

Saludos y gracias de antemano, Markus.

Respuesta1

Puedes usar mcp:

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

mcpestá incluido enmmvpaquete. Por defecto, mmvno está instalado en Ubuntu, pero puedes instalarlo desde la terminal usando el siguiente comando:

sudo apt-get install mmv

Verman mmvpara más información.

información relacionada