Предположим , что у вас есть куча .docx, .mp3, .txtи .xlsxфайлы , хранящиеся в этой структуре каталогов:
/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/
... и вы хотите вернуться во все такие каталоги, чтобы скопировать все найденные .mp3файлы, /home/me/music/но вы не хотите сохранять такое дерево каталогов в месте назначения (т.е. вы хотите, чтобы все найденные .mp3файлы были скопированы, /home/me/music/а не скопированы в соответствующие каталоги например /home/me/music/dir1/, /home/me/music/dir1/dir11/и так далее).
В таком случае на терминале оболочки (bash) сначала запустите эту команду, чтобы получить доступ к корню поиска файлов:
cd /files
... и затем выполните эту команду:
for i in `find . -iname '*.mp3'`; do cp $i /home/me/music/; done
В случае , если вы действительно хотите сохранить дерево каталогов источника сигналов в пункте назначения, запустите эту команду вместо (после запуска cd /files):
find . -iname '*.mp3' | cpio -pdm /home/me/music/
На приведенных выше команд, то поиск без учета регистра (т.е. ссылок .mp3, .MP3, .mP3и .Mp3). Используйте -nameвместо, -inameесли вы хотите, чтобы поиск был чувствительным к регистру (например, использование -nameдля .mp3строки символов будет соответствовать файлам, оканчивающимся на, .mp3но не тем, которые оканчиваются на .MP3, .mP3ни .Mp3).
-inameвместо того, чтобы-nameфайлы заканчивались.MP3.