[mdk-re] Re: [mdk-re] Удаление битых ссылок

cornet =?iso-8859-1?q?cornet_=CE=C1_zmail=2Eru?=
Пт Фев 9 15:36:10 MSK 2001


"Dmitry V. Levin" wrote:
> 
> On Fri, Feb 09, 2001 at 03:29:06PM +0600, denf на novosoft.ru wrote:
> > >Волею судеб, на сервере в одном каталоге и его подкаталогах образуется
> > >большое количество битых символических ссылок (то есть указывающих на
> > >уже не_существующие файлы). Этих ссылок много и чистить их руками сильно
> > >ломает. Может подскажет кто простой способ автоматизации этого дела?
> > >Хотелось бы залудить на cron скриптик, который лез бы в вышеозначеный
> > >каталог и рекурсивно долбал бы все эти битые ссылки.
> >
> > что-нибудь типа
> > if [ -L $file ] && [ ! -f $file ]; then
> >   rm -f  $file
> > fi
> 
> Корректнее так:
> [ ! -L "$file" -o -e "$file" ] || rm -f "$file"

Отлично работает, и пробелов в именах не_боится :-))

Вызов
find ./ -exec ./com.sh {} \;

содержимое com.sh
#!/bin/sh
file="$1"
[ ! -L "$file" -o -e "$file" ] || rm -f "$file"

Только не совсем понятно, в чем заключается большая корректность по
отношению к варианту, который предложил denf на novosoft.ru, можете о
пояснить?

> Если встречаются файлы с пробелами в именах, то эту строчку следует
> выделить в отдельный скрипт, и вызывать через "find -print 0 |xargs -r0".

уххх... че то xargs очень мудреной штукой оказался :-(( или я еще пока
что не вьехал  :-))


-- 
******** FIRE & STEEL ********




Подробная информация о списке рассылки community