Как найти только файлы * .mp3 с помощью рекурсивной команды, например, ls -R *.mp3
в каталоге, который содержит несколько подкаталогов, и в конце скопировать эти файлы в каталог, который я выбрал.
Спасибо за вашу поддержку.
command-line
V 3 L 3 N 0
источник
источник
find /path/to/dir/ -name '*.c' | xargs cp -t /target/
xargs
как правило, намного быстрее. Я только что провел быстрый тест, чтобы найти загрузку файлов c и запуститьls -l
их. Это 0m2.420s дляxargs
и 0m25.494s для-exec
... Очевидно, что в этом случаеcp
операция займет большую часть времени, так что, вероятно, это не имеет значения, но стоит помнить.-n`` switch to the
cp`, чтобы избежать перезаписи в случае дублирования имен (или написания скрипта, который проверяет наличие дубликатов перед копированием и переименовывает цель при необходимости)Есть и другой способ сделать это, который, я думаю, будет соответствовать вашим целям. Вы можете комбинировать
find
сwhile
циклом и даже не нужно использовать или изexec
илиxargs
вообще. Если, например, вы хотите скопироватьmp3s
свою папку загрузки в свою папку музыки, вы должны использовать следующий скрипт, который я использовал много раз.Вы можете изменить его так, как вы хотите, изменив каталоги, в которых производится
find
поиск и размещение полученных файлов; если каталог не указан,find
будет искать всю домашнюю папку. Вы также можете изменитьcp
кmv
или другим командам. Это довольно быстро, так как я только что проверил это с 3945.jpg
файлами! Скопируйте его в текстовый редактор, сохраните его, а затем сделайте его исполняемымchmod +x myscript
.На этой отмеченной вики Bash показано, насколько полезно комбинировать
while
цикл иread
команды для обработки выходных данныхfind
команды; и способ, которым я это сделал, гарантирует, что скрипт не сломается, если он встретит имена файлов с пробелами или другими неожиданными или специальными символами.Для получения более общей информации о
find
команде введите в терминалеman find
или посмотрите онлайн- руководства по Ubuntu . Прекрасное введение в использование find см. Также в этой статье .источник
find ~/Downloads -type f -iname '*.mp3' | while read mp3file; do cp "$mp3file" ~/Music; done
проще?-n`` switch to the
cp`, чтобы избежать перезаписи в случае дублирования имен (или написания скрипта, который проверяет наличие дубликатов перед копированием и переименовывает цель при необходимости)