Supongamos que usted tiene un montón de .docx
, .mp3
, .txt
y .xlsx
archivos 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 .mp3
archivos encontrados , /home/me/music/
pero no desea conservar dicho árbol de directorios en el destino (es decir, desea que todos los .mp3
archivos 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
, .mP3
y .Mp3
). Use en -name
lugar de -iname
si desea que la búsqueda distinga entre mayúsculas y minúsculas (por ejemplo, usar -name
para la .mp3
cadena de caracteres coincidirá con los archivos que terminan en, .mp3
pero no con los que terminan con .MP3
, .mP3
ni .Mp3
).
-iname
lugar de-name
en caso de que algún archivo termine.MP3
.