Копировать картинки рекурсивно из одной папки в корень другой?

Итак, у меня есть виртуальная машина Windows, на которой запущена определенная программа. Подробности следующие:

  1. Программа не имеет функции рекурсивного поиска.
  2. У меня много свободного дискового пространства.
  3. У меня есть лишний мусор в папке с изображениями. (Я просто хочу скопировать изображения, предположим, что у меня есть изображения в пределах каждого известного расширения файла изображения (исключая архивы))
  4. Я хочу использовать командную строку для рекурсивного сканирования каждого изображения в моем домашнем каталоге и копирования все они в текущем каталоге БЕЗ создания подпапок, которые соответствуют моей папке с изображениями. (Например: ~/cyndaquil.png копируется в ./cyndaquil.png, а ~/foo/bar/quilava.png копируется в ./quilava.png. Кроме того, мой домашний каталог - беспорядок.)

Итак, есть ли команда I можно использовать для этого?

0
задан 8 April 2015 в 12:38

2 ответа

Если Вы не заботитесь о коллизиях имени (foo/bar/name1 по сравнению с foo/other/name1 (но видите man cp для --backup=numbered), Вы могли читать man find для наблюдения то, что это делает:

find $HOME -type f -iname '*.png' -exec cp --backup=numbered {} $PWD \;
1
ответ дан 8 April 2015 в 12:38

Это скопирует (будет, эхо), все файлы, что эти file команда думает, являются некоторым изображением:

for i in $(find . -type f -print0 | xargs -0 file | grep " image " | cut -d: -f1 ) ; do echo cp "$i" $PWD; done
2
ответ дан 8 April 2015 в 12:38

Другие вопросы по тегам:

Похожие вопросы: