Je n'ai pas de bases RRD sous la main, donc voici un exemple inutile à base de quelques fichiers FLAC pour donner une idée.
#!/bin/bash
# Répertoires source et destination
SRC="/avant/media/musique/flac"
DST="/apres/Media/Musique/FLAC"
# Il est nécessaire de redéfinir l'IFS pour gérer correctement les espaces dans les noms de fichiers.
# N.B. : cette syntaxe fonctionne en BASH, mais pas en DASH (/bin/sh sous Debian)
IFS=$'\n'
for src in $( find "${SRC}" -type f -name '*.flac' )
do
# Construction du chemin complet de destination
dst=$( echo "$src" | sed -e "s%${SRC}%${DST}%" )
# Extraction du répertoire de ce chemin
rep=$( dirname "$dst" )
# Création du répertoire de destination, si nécessaire.
# C'est un peu léger, on ne récupère pas les éventuelles ACL posées sur les répertoires d'origine.
test -d "${rep}" || mkdir -p "${rep}"
# Export des tags du fichier source vers la destination, pour rendre l'exemple intéressant.
tag="${dst%flac}tag"
metaflac --export-tags-to="${tag}" "${src}"
done
Ce qui nous donne ceci :
Un album dans l'arborescence d'origine :
root@qnux:~# find /avant/
/avant/
/avant/media
/avant/media/musique
/avant/media/musique/flac
/avant/media/musique/flac/Air
/avant/media/musique/flac/Air/Love 2
/avant/media/musique/flac/Air/Love 2/06. Tropical Disease.flac
/avant/media/musique/flac/Air/Love 2/04. Be a Bee.flac
/avant/media/musique/flac/Air/Love 2/05. Missing The Light Of The Day.flac
/avant/media/musique/flac/Air/Love 2/11. You Can Tell It To Everybody.flac
/avant/media/musique/flac/Air/Love 2/07. Heaven's Light.flac
/avant/media/musique/flac/Air/Love 2/09. Sing Sang Sung.flac
/avant/media/musique/flac/Air/Love 2/02. Love.flac
/avant/media/musique/flac/Air/Love 2/10. Eat My Beat.flac
/avant/media/musique/flac/Air/Love 2/01. Do The Joy.flac
/avant/media/musique/flac/Air/Love 2/03. So Light Is Her Footfall.flac
/avant/media/musique/flac/Air/Love 2/12. African Velvet.flac
/avant/media/musique/flac/Air/Love 2/08. Night Hunter.flac
/avant/lost+found
Le contenu de l'arborescence cible après exécution du script :
root@qnux:~# find /apres/
/apres/
/apres/lost+found
/apres/Media
/apres/Media/Musique
/apres/Media/Musique/FLAC
/apres/Media/Musique/FLAC/Air
/apres/Media/Musique/FLAC/Air/Love 2
/apres/Media/Musique/FLAC/Air/Love 2/01. Do The Joy.tag
/apres/Media/Musique/FLAC/Air/Love 2/07. Heaven's Light.tag
/apres/Media/Musique/FLAC/Air/Love 2/11. You Can Tell It To Everybody.tag
/apres/Media/Musique/FLAC/Air/Love 2/02. Love.tag
/apres/Media/Musique/FLAC/Air/Love 2/03. So Light Is Her Footfall.tag
/apres/Media/Musique/FLAC/Air/Love 2/08. Night Hunter.tag
/apres/Media/Musique/FLAC/Air/Love 2/09. Sing Sang Sung.tag
/apres/Media/Musique/FLAC/Air/Love 2/04. Be a Bee.tag
/apres/Media/Musique/FLAC/Air/Love 2/12. African Velvet.tag
/apres/Media/Musique/FLAC/Air/Love 2/05. Missing The Light Of The Day.tag
/apres/Media/Musique/FLAC/Air/Love 2/10. Eat My Beat.tag
/apres/Media/Musique/FLAC/Air/Love 2/06. Tropical Disease.tag
Le renommage d'arborescence, c'est juste pour illustrer le propos.
Il ne me viendrait pas à l'idée d'en passer par un script shell juste pour renommer une arborescence :
mmv est nettement plus efficace pour ça.