Tengo varias carpetas como /music/1/a.mp3 y /music/2/b.mp3
Todos los nombres de archivos en sí mismos están garantizados para ser diferentes.
¿Hay alguna manera, probablemente utilizando la Terminal, para copiar estos archivos a /musicTemp/ excluyendo las carpetas?
En otras palabras, el resultado de los dos ejemplos anteriores debe ser:
/music/1/a.mp3
/music/2/b.mp3
dentro:
/musicTemp/a.mp3
/musicTemp/b.mp3

find /music -name "*.mp3" -type file -exec mv {} /destination_dir \;cpnomv. De lo contrario, eso debería funcionar.Respuestas:
los
findEl comando buscará todos los archivos del patrón especificado (-name), en este caso un tipo de archivo específico:*.mp3.-exechace que todos los argumentos siguientes se encuentren para ser tomados como argumentos para el comando hasta que un argumento consistente en;se encuentra (al final, con escape literal para evitar la expansión por parte del shell). En este caso, el comando que queremos ejecutar es una copia de archivo (cp) en archivos que coinciden con el patrón ({}) y copiar esos archivos a/destination_dir. Este comando debe hacer el truco:fuente
Si usted tiene Bash instalado 4 , podrias agregar
shopt -s globstara .bash_profile y ejecute esto:fuente
shopt..Es necesario ya que esto funciona sin modificaciones, también conmv.. Gracias de todos modos el**es nuevo para mi :)