URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8611
[ Назад ]

Исходное сообщение
"find. Выполнить команду для каждого найденного файла"

Отправлено Dimka , 03-Фев-10 18:36 
Коллеги, привет!

Озадачился простой задачей. По крайней мере, я думал, что все должно быть просто. Нужно найти файлы по маске и для них выполнить команду, например, cp. В идеале, конечно, сделать этим файлам cat <файл> | <мой скрипт на Perl>, но сделать это нужно для каждого файла. Но для начала, нужно чтобы хотя бы 'cp' заработало.

Я делаю так:

find /usr/db/mailboxes/example.com/webmaster/.INBOX.Spam_to_learning/ -name "*example.com*" -type f -exec "cp {} /tmp/" \;

А получаю это:
find: cp /usr/db/mailboxes/example.com/webmaster/.INBOX.Spam_to_learning/cur/1265210314.M879578P18259.www.example.com,S=1812:2,S /tmp/: No such file or directory

Если выполнить отдельно cp /usr/db/mailboxes/example.com/webmaster/.INBOX.Spam_to_learning/cur/1265210314.M879578P18259.www.example.com,S=1812:2,S /tmp/ - все получается.

Хелп ми, плиз.
FreeBSD 8.0


Содержание

Сообщения в этом обсуждении
"find. Выполнить команду для каждого найденного файла"
Отправлено Andrey Mitrofanov , 03-Фев-10 18:53 
>find: cp /usr/db/mailboxes/example.com/webmaster/.INBOX.Spam_to_learning/cur/1265210314.M879578P18259.www.example.com,S=1812:2,S /tmp/: No such file or directory
>FreeBSD 8.0

google.ru + find exec sh freebsd site:opennet.ru/openforum/

Обращать особое внимание на тип шела, тип ОС-а... Копать в сторону экранирования и/или _-exec sh -c '....'_.


"find. Выполнить команду для каждого найденного файла"
Отправлено Dimka , 03-Фев-10 19:51 
>>find: cp /usr/db/mailboxes/example.com/webmaster/.INBOX.Spam_to_learning/cur/1265210314.M879578P18259.www.example.com,S=1812:2,S /tmp/: No such file or directory
>>FreeBSD 8.0
>
>google.ru + find exec sh freebsd site:opennet.ru/openforum/
>
>Обращать особое внимание на тип шела, тип ОС-а... Копать в сторону экранирования
>и/или _-exec sh -c '....'_.

О спасибо, человечище :-) 'sh -с' решило вопрос. Кто бы мог подумать.