From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: "Artem K. Jouravsky" To: ALT Linux Spring mailing list Cc: "Dmitry V. Levin" Message-ID: <20020219085912.GB6218@ifirst.ru> Mail-Followup-To: ALT Linux Spring mailing list , "Dmitry V. Levin" References: <20020218215807.GA3096@ifirst.ru> <20020219084424.GB29316@ldv.office.alt-linux.org> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20020219084424.GB29316@ldv.office.alt-linux.org> User-Agent: Mutt/1.3.27i Organization: iFirst Ltd. Subject: [mdk-re] Re: [JT] (find + grep) && exceptions Sender: mandrake-russian-admin@altlinux.ru Errors-To: mandrake-russian-admin@altlinux.ru X-BeenThere: mandrake-russian@altlinux.ru X-Mailman-Version: 2.0 Precedence: bulk Reply-To: mandrake-russian@altlinux.ru List-Help: List-Post: List-Subscribe: , List-Id: Linux-Mandrake RE / ALT Linux discussion list List-Unsubscribe: , List-Archive: Date: Tue Feb 19 11:48:12 2002 X-Original-Date: Tue, 19 Feb 2002 11:59:12 +0300 Archived-At: List-Archive: List-Post: On Tue, Feb 19, 2002 at 11:44:24AM +0300, Dmitry V. Levin wrote: > On Tue, Feb 19, 2002 at 12:58:07AM +0300, Artem K. Jouravsky wrote: > > Вот мучает меня уже несколько дней (не сильно, просто как комар) такое > > желание: есть куча пользователей-разработчиков, которые обожают права 777 > > на файлы в своей директории. Хочется сделать им сюрприз, ибо давно > > предупреждены. Но! Есть файлы (или по крайней мере, папки), на которые > > действительно нужны права на запись для all. Делаю такую конструкцию: > > > > $find /path/to -type f -perm -o=w -print0|xargs -0 chmod 644 {} ';' > > > > Хочется вставить посредине что-то вроде grep -v exceptions, > > где то что grep получит из а exceptions - список > > исключений. Но вот проблема - xargs -0 grep exceptions даст совсем не то > > что мне нужно... > > Можно сделать подлиннее, но не хочется. Есть способ это сделать коротко? > > find /path/to -type f -perm -o=w -print0 |xargs -r0 /run/my/script > > Соответственно, скрипт этот может делать нечто вроде > for f in "$@"; do > [ -f "$f" ] || continue > p=$(quote_regexp "$f") > grep -qs '^$p$' /file/with/exceptions && continue > chmod 644 "$f" > done > > quote_regexp - это функция, экранирующая метасимволы регулярных выражений. > Ее реализация - простое, но полезное упражнение. > > В любом случае, абсолютно корректное решение этой задачи с помощью grep > вряд ли возможно ввиду того, что в именах файлов могут присутствовать > переводы строки. Хм, спасибо! -- Best wishes, Artem K. Jouravsky, iFirst Ltd, System Administrator. ----------------------- I have not yet begun to byte!