2015-03-04 5 views
0

Я пытаюсь найти и скопировать все изображения из одного места в другое, сохраняя структуру папок. Я попытался с помощью следующей команды:Найти и скопировать все изображения, сохраняющие структуру папок

sudo find . -type f -exec file {} \; | awk -F: '{ if ($2 ~/[Ii]mage|EPS/) print $1}' | cpio -pdm /media/newlocation 

Это отлично работает на пару минут (у меня есть гигабайты файлов, которые будут найдены и копии), но через некоторое время я получаю следующее сообщение об ошибке:

find: `file' terminated by signal 13 

Что не так с командой? Есть ли лучший способ сделать это?

С уважением

+0

Возможно, команда exec не найдена. попробуйте с файлом '-exec {} +' непосредственно перед трубой (также удалите семколон). –

ответ

2

Я не уверен, почему вы получите SIGPIPE.

Вместо того, чтобы позволить найти сделать EXEC, вы можете попробовать:

находку. -тип f -print | Файл xargs | awk ....

То есть - просто найдите их распечатать и файл xargs для запуска команды файла.

Обратите внимание, что ваша команда sudo выполнит поиск, но не будет судо всей строки. Это вызовет у вас больше проблем (если вам вообще нужно sudo).

2

Вы можете использовать rsync для копирования одного каталога в другой. Если вам нужны только некоторые файлы, не стесняйтесь использовать --exclude и --include.

rsync -avz --include='[iI]mage' --include='EPS' --exclude='*' source/ output/ 

Чтобы проверить команду добавить Rsync вариант --dry перспективе:

--dry-run perform a trial run with no changes made

Вы можете найти некоторые примеры Rsync включают параметры в этом thread.

+0

Он также отлично работает с командой sudo. У вашей начальной версии могут быть проблемы с ней. Спасибо @ joseph-larson за заметку. – idobr

+0

Спасибо, Will --include проверьте, является ли этот файл изображением? Я хотел бы найти и скопировать файлы на основе их mime-типов (все изображения или, возможно, видео), а не на их расширение. – karruma

+0

ASFAIK, no. Такого варианта нет. Прости. Я пропустил 'файл' в трубке вашей команды. Возможно, это обходное решение. Я проверю его позже. – idobr

 Смежные вопросы

  • Нет связанных вопросов^_^