Supongamos que usted tiene un montón de .docx, .mp3, .txty .xlsxarchivos almacenados en esta estructura de directorios:
/files/
/files/dir1/
/files/dir1/dir11/
/files/dir1/dir12/
/files/dir1/dir13/
/files/dir2/
/files/dir3/
/files/dir3/dir31/
/files/dir3/dir32/
/files/dir4/
/files/dir5/
/files/dir51/
/files/dir52/
/files/dir53/
/files/dir54/
... y desea recurrir a todos esos directorios para copiar todos los .mp3archivos encontrados , /home/me/music/pero no desea conservar dicho árbol de directorios en el destino (es decir, desea que todos los .mp3archivos encontrados se copien en /home/me/music/lugar de copiarse en los directorios respectivos tales como /home/me/music/dir1/, /home/me/music/dir1/dir11/etcétera).
En tal caso, en el terminal de shell (bash) primero ejecute este comando para acceder a la raíz de su búsqueda de archivos:
cd /files
... y luego ejecuta este comando:
for i in `find . -iname '*.mp3'`; do cp $i /home/me/music/; done
En caso de que no desea conservar árbol de directorios de la fuente en el destino, ejecute este comando en su lugar (después de correr cd /files):
find . -iname '*.mp3' | cpio -pdm /home/me/music/
En los comandos anteriores, la búsqueda no distingue entre mayúsculas y minúsculas (es decir .mp3, coincidencias .MP3, .mP3y .Mp3). Use en -namelugar de -inamesi desea que la búsqueda distinga entre mayúsculas y minúsculas (por ejemplo, usar -namepara la .mp3cadena de caracteres coincidirá con los archivos que terminan en, .mp3pero no con los que terminan con .MP3, .mP3ni .Mp3).
-inamelugar de-nameen caso de que algún archivo termine.MP3.