Предположим , что у вас есть куча .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
.