[linux-l] symbolische Links im Pfad

Frank Reker frank at reker.net
Do Apr 28 19:13:57 CEST 2005


Am Thu 28. Apr 2005 17:57 +0000 schrieb Axel Weiß:

>Hi,
>
>wie kann (bash-scripted) ich feststellen, ob ein gegebener Pfad einen 
>symbolischen Link enthält?
>
>Beispiel:
>Pfad: /a/b/c/d/e
>und /a/b/c ist ein symlink auf /f/g/h

cd "`dirname "$mypath"`"
if test "`pwd -P`" != "`pwd -L`"; then
	echo "contains symlinks"
else if test -L "`basename "$mypath"`"; then
	echo "is symlink"
else
	echo "no symlinks"
fi
cd -

oder:
function testsymlinks ()
{
	test -z "$1" -o "$1" = "/" && return 1
	test -L "$1" && return 0
	testsymlinks "`dirname "$1"`"
	return $?
}

wobei 2. loesung aber nur mit absoluten pfaden funzt, waehrend 1. 
rechteprobleme haben kann (keine executerechte (aber leserechte) auf ein
verzeichnis). mit einer kombination aus 1. und 2. kannst du eine
allgemeingueltige loesung schaffen.
ne elegantere loesung faellt mir aber spontan nicht ein.


-- 
Don't worry be happy ...
Ciao Frank
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: nicht verfügbar
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20050428/82eb9093/attachment.sig>


Mehr Informationen über die Mailingliste linux-l