Il existe plusieurs options, mais aucune n'est vraiment simple, je le crains
rsync
rsync -r --include="*/" --include="*.mp3" --exclude="*" --prune-empty-dirs . ../TEMP2
Cela signifie qu'il faut exclure tous les fichiers ( exclude="*"
), mais pour regarder dans tous les répertoires ( include="*/"
) et d'inclure tous les fichiers mp3 ( include="*.mp3"
). Si vous ne souhaitez pas copier des répertoires ne contenant pas de fichiers mp3, vous pouvez utiliser l'option --prune-empty-dirs
est nécessaire.
fermeture éclair
zip -R archive.zip "*.mp3"
unzip -d ../TEMP2 archive.zip && rm archive.zip
La première commande crée une archive contenant tous les fichiers mp3, la seconde décompresse le contenu dans le répertoire cible et supprime le fichier d'archive en cas de succès.
trouver
find . -iname "*.mp3" -exec install -D {} ../TEMP2/{} ";"
Cette opération permet de trouver tous les fichiers mp3 et de les copier dans le chemin d'accès correspondant dans le fichier ../TEMP2
après avoir créé la structure du répertoire ( install -D
).
copier tout et supprimer le reste
Cela n'a de sens que si vous n'avez que quelques fichiers que vous ne à copier :
cp -r * ../TEMP2
find ../TEMP2 -type f \! -iname '*.mp3' -delete
Ce programme copie tout et supprime ensuite tous les fichiers qui ne sont pas des fichiers mp3.