Suponha que você tem um monte de .docx, .mp3, .txte .xlsxarquivos armazenados nesta estrutura de diretórios:
/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/
... e você deseja recursar em todos esses diretórios para copiar todos os .mp3arquivos encontrados, /home/me/music/mas não deseja preservar essa árvore de diretórios no destino (ou seja, deseja que todos os .mp3arquivos encontrados sejam copiados para em /home/me/music/vez de copiados para os respectivos diretórios como /home/me/music/dir1/, /home/me/music/dir1/dir11/etc.).
Nesse caso, no terminal do shell (bash), execute primeiro este comando para acessar a raiz da sua pesquisa de arquivos:
cd /files
... e, em seguida, execute este comando:
for i in `find . -iname '*.mp3'`; do cp $i /home/me/music/; done
No caso de você não quiser preservar árvore de diretórios do fonte no destino, execute este comando em vez (após a execução cd /files):
find . -iname '*.mp3' | cpio -pdm /home/me/music/
Nos comandos acima, a pesquisa não diferencia maiúsculas de minúsculas (por exemplo .mp3, correspondências .MP3, .mP3e .Mp3). Use em -namevez de -inamese desejar que a pesquisa faça distinção entre maiúsculas e minúsculas (por exemplo, usar -namepara a .mp3sequência de caracteres corresponderá aos arquivos que terminam com, .mp3mas não àqueles que terminam com .MP3, .mP3nem .Mp3).
-inamevez de-nameno caso de algum arquivo terminar.MP3.