🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: ch.comp.os.linux
Article #12435

Re: Pruefen von symbolische links

#12435
From: Roberto Nibali
Date: Thu, 05 Jul 2001 11:28
70 lines
3529 bytes
Hoi Christian,

> wusste ich schon, aber es viel mir gerade nichts mehr ein, wollte es zuerst auch
> nicht posten weil eben wie du es schon gesagt hast "very hackerish".

No problem. Ich denke, das ist das schoene an Unix. Viele Wege fuehren
zum Ziel. Einige davon sind machmal nicht so offensichtlich. Sehr gute 
Literatur, die ich jedem Unix Benutzer empfehle ist:

UNIX Power Tools, o'reilly. [Jerry D. Peek, Tim O'Reilly]
ISBN: 1565922603

Wer alles weiss, was da drin steht, der darf sich wahrlich Unix guru
nennen.
 
> Das test -e lauft hier, auch wenn es nicht in der man-pages, die ich hier habe,
> beschrieben ist. (Arggg...)

Hmm, welche man page rufst Du denn auf? Ich finde den Hinweis in
bash(1) und ksh(1).
 
> Das sollte fuer mich genuegen, aber meine Neugier mochte doch wissen wie die
> hardcore Variante lautet.

Ich habe nachher bemerkt, dass meine Idee (Hardcore Variante) doch 
nicht funktioniert. Die Idee waere gewesen, einen Monstereinzeiler
in der /var/lib/magic syntax zu schreiben und dann mit

file -m /tmp/my_magic broken_sym_link

zu testen. Leider wird das broken symlink durch den ENOENT generiert
und nicht durch byte-matching :(. Siehe strace output:

[...]
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
lstat("b", {st_mode=S_IFLNK|0777, st_size=1, ...}) = 0
readlink("b", "a", 8191)                = 1
stat("a", 0xbfff559c)                   = -1 ENOENT (No such file or directory)
write(1, "b: broken symbolic link to a\n", 29b: broken symbolic link to a
) = 29
munmap(0x40014000, 4096)                = 0
_exit(0)                                = ?


Aber mir ist noch eine witzige Methode eingefallen:

zar:/tmp # ls -al foo bar
ls: foo: No such file or directory
ls: bar: No such file or directory
zar:/tmp # ln -s bar foo
zar:/tmp # ls -al foo bar
ls: bar: No such file or directory
lrwxrwxrwx   1 root     root            3 Jul  5 13:16 foo -> bar
zar:/tmp # (< foo) 2>/dev/null
zar:/tmp # echo $?
1
zar:/tmp # > bar
zar:/tmp # (< foo) 2>/dev/null
zar:/tmp # echo $?
0
zar:/tmp # ls -al foo bar
-rw-r--r--   1 root     root            0 Jul  5 13:17 bar
lrwxrwxrwx   1 root     root            3 Jul  5 13:16 foo -> bar
zar:/tmp # 

Viel Spass damit,
Roberto Nibali, ratz

-- 
mailto: `echo NrOatSz@tPacA.cMh | sed 's/[NOSPAM]//g'`
Technical Details
Message-ID: <3B444F72.83F3B29C@tac.ch>
Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!newsfeed.direct.ca!look.ca!cpk-news-hub1.bbnplanet.com!nycmny1-snf1.gtei.net!news.gtei.net!newsfeed-zh.ip-plus.net!news.ip-plus.net!not-for-mail
References: <3B441847.381424C4@siemens.ch> <3B441A75.2CF14D98@tac.ch> <3B442D76.F78EB891@siemens.ch> <3B44352A.6CC715F9@tac.ch> <3B4445DD.CD3BF0E6@siemens.ch>

Show Full Headers
Complete Article Headers
X-Google-Language: GERMAN,ASCII-7-bit
X-Google-Thread: f4b73,67e615da96b01c88
X-Google-Attributes: gidf4b73,public
X-Google-ArrivalTime: 2001-07-05 04:28:59 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!newsfeed.direct.ca!look.ca!cpk-news-hub1.bbnplanet.com!nycmny1-snf1.gtei.net!news.gtei.net!newsfeed-zh.ip-plus.net!news.ip-plus.net!not-for-mail
From: Roberto Nibali <ratz@tac.ch>
Newsgroups: ch.comp.os.linux
Subject: Re: Pruefen von symbolische links
Date: Thu, 05 Jul 2001 13:28:50 +0200
Organization: terreActive
Lines: 70
Message-ID: <3B444F72.83F3B29C@tac.ch>
References: <3B441847.381424C4@siemens.ch> <3B441A75.2CF14D98@tac.ch> <3B442D76.F78EB891@siemens.ch> <3B44352A.6CC715F9@tac.ch> <3B4445DD.CD3BF0E6@siemens.ch>
NNTP-Posting-Host: 212.28.148.18
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Trace: rex.ip-plus.net 994332537 18236 212.28.148.18 (5 Jul 2001 11:28:57 GMT)
X-Complaints-To: abuse@ip-plus.net
NNTP-Posting-Date: Thu, 5 Jul 2001 11:28:57 +0000 (UTC)
X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.5-ac19 i686)
X-Accept-Language: en, de-CH, zh-CN