LINUX.ORG.RU

т.е. ты хочешь в каждый найденный файл что-то писать?
не умею в find -exec
но можешь так например

find . -type f | awk '{ print "Привет!" > $1}'

Debasher ★★★★★ ()
Ответ на: комментарий от Debasher

Я хочу обнулять содержимое файла, но если обнулять с помощью truncate -s 0 {} или с помощью cp /dev/null {}, то у того кто этот файл читает сносит крышу. А вот такая вещь echo «» > path_to_file работает нормально, но если ее завернуть в find то волшебство заканчивается и файлы найденные файндом не обнуляются

zdravnik ()
Ответ на: комментарий от zolden

чтобы взять все файлы которые лежат в /tmp/ram/ и подтереть их содержимое.Можно конечно вместо find прописать пути к этим файлам, но кол-во и имена этих файлов могу меняться в дальнейшем, а очистку необходимо засунуть в cron. Соответственно не хочется каждый раз править крон при изменении/добавлении файлов в /tmp/ram/

zdravnik ()
Ответ на: комментарий от most-fucktum

понимаю, именно это и дает тот результат что у программы которая работает с этими файлами не уносит крышу.

zdravnik ()
Ответ на: комментарий от Legioner

find /tmp/ram -type f -exec bash -c 'echo «» > {}' \;

вот это я так понимаю не особо быстро работает, потому что присутствует некоторый лаг. Объясню: Совершаю действие оно попадает в /tmp/ram/some_file есть программа которая читает /tmp/ram/some_file и реагирует на определенные паттерны. Соответственно когда запускаю очистку предложенную тобой, то есть какой-то промежуток времени в который программа не реагирует на патерны в /tmp/ram/some_file, через некоторое время все становится нормально.

zdravnik ()
Ответ на: комментарий от zdravnik

если тебя напрягает производительность shell'a, то напиши на С, это элементарно, открыть файл и записать в него \n

most-fucktum ()
Ответ на: комментарий от ashot

Поностью согласен. Если в заданной директории только нужные нам файлы, то зачем их find'ить?

S_Paul ★★★★ ()

Предложу и свой вариант, чо

В четыре процесса:

find . -type f -print0 | xargs -P4 -n1 -0 -I'{}' sh -c 'echo -n > {}'

gh0stwizard ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.