4

Я хочу рекурсивно пройтись по папкам структуры каталогов и скопировать любой файл .jpg, который я найду, в другой каталог.

Я думаю, что у меня была неправильная идея с:

cp -R photos/*.jpg /cpjpg

Как я могу сделать это из командной строки в Ubuntu?

3 ответа3

9

Это скопирует все файлы, оканчивающиеся на .jpg или .jpeg (без учета регистра) в текущем каталоге и во всех его подкаталогах, в каталог /cpjpg. Структура каталогов не копируется.

find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -exec cp '{}' /cpjpg \;
8

Это сохраняет структуру каталогов:

rsync -av --include='*.jpg' --include='*/' --exclude='*' SRC DST

см. http://logbuffer.wordpress.com/2011/03/24/linux-copy-only- sure-filetypes-with-rsync-from-foldertree/

4

Это сохранит структуру каталогов.

find photos/ -type f \( -iname '*.jpg' -o -iname '*.jpeg' \) -print0 |xargs -0 tar c |(cd /cpjpg ; tar x)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .