ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: cornet <cornet@zmail.ru>
To: mandrake-russian@linuxteam.iplabs.ru
Subject: Re: [mdk-re] Re: [mdk-re]   Удаление битых ссылок
Date: Fri Feb  9 15:36:10 2001
Message-ID: <3A83E487.7EFA4DAE@zmail.ru> (raw)
In-Reply-To: <20010209142052.C30907@LDV.fandra.org>

"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 ********



  reply	other threads:[~2001-02-09 15:36 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-09 12:25 denf
2001-02-09 14:16 ` [mdk-re] " Dmitry V. Levin
2001-02-09 15:36   ` cornet [this message]
2001-02-09 15:58     ` cornet
2001-02-09 16:33       ` cornet
2001-02-10  4:18         ` Dmitry V. Levin
2001-02-12 12:14           ` cornet
2001-02-09 15:29 ` cornet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3A83E487.7EFA4DAE@zmail.ru \
    --to=cornet@zmail.ru \
    --cc=mandrake-russian@linuxteam.iplabs.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git