У меня есть вся моя музыка в папке /media/kalenpw/MyBook/Music/ABunchOfOtherFoldersWithFilesInside
. Я хочу скопировать все mp3-файлы, /media/kalenpw/HDD/Music
чтобы я использовал:
cp -R /media/kalenpw/MyBook/Music/*.mp3 /media/kalenpw/HDD/Music
однако это только скопировало mp3-файлы в корневую папку музыки и не открывало ни один из подкаталогов исполнителя и копировало эти файлы.
У меня сложилось впечатление, -R
что рекурсивно скопирую все файлы. Как я могу достичь указанной цели?
-iname
вместо того, чтобы-name
файлы заканчивались.MP3
.Вы специально упомянули файлы (ы) / каталог (и), которые нужно скопировать, используя,
*.mp3
то есть любое имя файла / каталога, заканчивающееся на.mp3
.Таким образом, любой файл, заканчивающийся на
.mp3
в/media/kalenpw/MyBook/Music/
каталоге и аналогично, любой каталог, заканчивающийся на.mp3
в,/media/kalenpw/MyBook/Music/
будет скопирован рекурсивно. Если такого подходящего файла / каталога нет, ничего не будет скопировано.Теперь для копирования всех
.mp3
файлов из/media/kalenpw/MyBook/Music/
рекурсивлей в каталог/media/kalenpw/HDD/Music/
:Использование
bash
:Использование
find
:источник
Вы также можете использовать cpr :
Обратите внимание, что без
-p
cpr сохранит полные пути к каталогам на скопированных именах файлов.-r
может использоваться (вместо-p
) для сохранения пути в «/media.../Music/».Также
cpr
позаботится о том, чтобы ни один файл не был перезаписан, добавляя число, начинающееся с «0001», к любому повторному скопированному имени файла.источник
Предположим , что у вас есть куча
.docx
,.mp3
,.txt
и.xlsx
файлы , хранящиеся в этой структуре каталогов:... и вы хотите вернуться во все такие каталоги, чтобы скопировать все найденные
.mp3
файлы,/home/me/music/
но вы не хотите сохранять такое дерево каталогов в месте назначения (т.е. вы хотите, чтобы все найденные.mp3
файлы были скопированы,/home/me/music/
а не скопированы в соответствующие каталоги например/home/me/music/dir1/
,/home/me/music/dir1/dir11/
и так далее).В таком случае на терминале оболочки (bash) сначала запустите эту команду, чтобы получить доступ к корню поиска файлов:
... и затем выполните эту команду:
В случае , если вы действительно хотите сохранить дерево каталогов источника сигналов в пункте назначения, запустите эту команду вместо (после запуска
cd /files
):На приведенных выше команд, то поиск без учета регистра (т.е. ссылок
.mp3
,.MP3
,.mP3
и.Mp3
). Используйте-name
вместо,-iname
если вы хотите, чтобы поиск был чувствительным к регистру (например, использование-name
для.mp3
строки символов будет соответствовать файлам, оканчивающимся на,.mp3
но не тем, которые оканчиваются на.MP3
,.mP3
ни.Mp3
).источник