Article View: ch.comp.os.linux
Article #12435Re: Pruefen von symbolische links
From: Roberto Nibali
Date: Thu, 05 Jul 2001 11:28
Date: Thu, 05 Jul 2001 11:28
70 lines
3529 bytes
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-mailReferences:
<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