Припустимо , що у вас є купа .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/
et cetera).
У такому випадку в терміналі оболонки (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
.