Итак, у меня есть виртуальная машина Windows, на которой запущена определенная программа. Подробности следующие:
~/cyndaquil.png
копируется в ./cyndaquil.png
, а ~/foo/bar/quilava.png
копируется в ./quilava.png
. Кроме того, мой домашний каталог - беспорядок.) Итак, есть ли команда I можно использовать для этого?
Если Вы не заботитесь о коллизиях имени (foo/bar/name1
по сравнению с foo/other/name1
(но видите man cp
для --backup=numbered
), Вы могли читать man find
для наблюдения то, что это делает:
find $HOME -type f -iname '*.png' -exec cp --backup=numbered {} $PWD \;
Это скопирует (будет, эхо), все файлы, что эти file
команда думает, являются некоторым изображением:
for i in $(find . -type f -print0 | xargs -0 file | grep " image " | cut -d: -f1 ) ; do echo cp "$i" $PWD; done