PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wie Hardlinks erkennen?



keiner_1
19.03.03, 23:02
Salut Leser,

Softlink = eine Inode verweist auf die Original Inode
Hardlink = der Inhalt der Originalinode wird an die Kopieinode gemacht

??? richtig ???

ich möchte herausfinden welches der Hardlink ist

hier der Code, nutze Redhat 8

[root@cpq01 root]# ls -ald /etc/init.d/
drwxr-xr-x 2 root root 4096 Mar 18 20:01 /etc/init.d/
[root@cpq01 root]# ls -ald /etc/rc.d/init.d/
drwxr-xr-x 2 root root 4096 Mar 18 20:01 /etc/rc.d/init.d/
[root@cpq01 root]# diff /etc/init.d/ /etc/rc.d/init.d/
[root@cpq01 root]#


merci

HackThor
19.03.03, 23:55
Hi!

Zum Anzeigen des Inodes:
Nimm mal beim "ls" die Option "i" hinzu, da wird dir der Inode mit angezeigt. Auch beim "stat <file>" kommt der Inode mit vor.

Ach ja, die Erklärung der Links stimmt nicht so ganz:
Softlink = eine Datei, deren Inhalt der Pfad zu einer anderen Datei ist (ein Verweis auf die andere Datei)
Hardlink = ein 2. Directory-Eintrag auf den gleichen Inode

Und das ist auch schon das Problem beim Hardlink: du hast _1_ Datei aber _2_ Einträge im Directory (die beide auf ein und denselbe 1. Inode einer einzigen Datei verweisen!). Somit kann man im Prinzip nicht feststellen welche der beiden (Directory-)Einträge nun "Original" und welches "Kopie" ist. Nur wenn du Glück hast und das Anlegen des Hardlinks etwas später war als das Anlegen der Datei dann würde das gehen - dann ist die "Change Time" anders (Anzeige mit "stat" oder "ls -lc"). Ansonsten - keine Chance.

ciao

Michael

keiner_1
20.03.03, 22:28
[root@cpq01 etc]# stat init.d/
File: "init.d/"
Size: 4096 Blocks: 8 IO Block: 4096 Directory
Device: 802h/2050d Inode: 999431 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: Thu Mar 20 23:26:54 2003
Modify: Tue Mar 18 20:01:56 2003
Change: Tue Mar 18 20:01:56 2003

[root@cpq01 etc]# stat rc.d/init.d/
File: "rc.d/init.d/"
Size: 4096 Blocks: 8 IO Block: 4096 Directory
Device: 802h/2050d Inode: 999431 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: Thu Mar 20 23:26:54 2003
Modify: Tue Mar 18 20:01:56 2003
Change: Tue Mar 18 20:01:56 2003

[root@cpq01 etc]#


hier kann man es nicht herausfinden, wie gesagt.

cu
adme

cirad
21.03.03, 00:55
Öhm. Du hast doch bei dem Beispiel jetzt gerade herausgefunden, daß es nen Hardlink ist. (:

EDIT:
Oder meinst du, welches der Hardlink ist!? Das ist schnuppe. Da gibt es kein "welcher".

taylor
21.03.03, 07:11
Ich hab noch nie Hardlinks benutzt, aber Du kannst es ja mal versuchen:


p3:~$ file Dokumente
Dokumente: symbolic link to crypto/florian/Dokumente/
p3:~$

Ich könnte mir vorstellen, dass dort dann auch hardlink to steht :)

Gruß,
Taylor

mightymike99
21.03.03, 17:37
Hilfen zum herausfinden von Informationen zu Hardlinks:
- ls zeigt den Linkcounter an, d. h. wie viele Hardlinks auf eine Datei zeigen.
- find lässt nach bestimmten inode nummern Suchen, damit finden sich die passenden Hardlinks zu einer Datei.