Hardlinks (Linux)

Pagina: 1
Acties:

  • The Jester
  • Registratie: Januari 2000
  • Laatst online: 26-11-2024

The Jester

The fool escaped from paradise

Topicstarter
Dat je kunt linken weet ik wel (doe het vaak genoeg)
Maar: Hoe kun je zien of een link een HARDlink is of een SYMlink ??

Ik weet dat er een manier is om dat 'zichtbaar' te maken, maar ik weet niet hoe... :?

* The Jester rekent op U !!

As you grow up and leave the playground where you kissed your prince and found your frog...


Verwijderd

Ik weet niet of je er iets aan hebt, maar als je met ls -l iets met ... -> ... ziet is het een symlink, zoniet is het een hardlink.

  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
Onzichtbaar maken kan gewoon door een . voor de dir/file te zetten. Maar de vraag snap ik niet helemaal :?.

zeroxcool.net - curity.eu


Verwijderd

lijkt me duidelijk, hij wil weten hoe je kan zien of iets een hard link of een symbolic link is :)

maar goed, een symlink kun je dus herkennen aan dat pijltje en aan de lrwxrwxrwx permissies (l van link), hoe je kan zien of iets een gehardlinkt is weet ik alleen niet :)

  • JF_
  • Registratie: Juni 2001
  • Laatst online: 13-08 17:11

JF_

Symlinks zijn makkelijk te herkennen, ls -l, en je ziet ze zo staan met de pijltjes.
Hardlinks zijn niet zo makkelijk te herkennen, hardlinks zijn namelijk geen echte links maar duplicaatentries in de FAT (nou ja, in het Linux-equivalent ervan). Een hardlinked file is dus niet te onderscheiden van 't origneel, beide entries *zijn* dezelfde file.

Laat stat los op de file-in-kwestie, regular files geven 1 link aan, hardlinked files meer.


[root@router test]# ls -la
-rw-r--r-- 2 root root 0 Jul 4 20:42 blabla
-rw-r--r-- 2 root root 0 Jul 4 20:42 hardlink
lrwxrwxrwx 1 root root 6 Jul 4 20:42 symlink -> blabla

[root@router test]# stat *
File: "blabla"
Size: 0 Blocks: 0 IO Block: 4096 Regular File
Device: 301h/769d Inode: 115548 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: Thu Jul 4 20:42:10 2002
Modify: Thu Jul 4 20:42:10 2002
Change: Thu Jul 4 20:42:25 2002

File: "hardlink"
Size: 0 Blocks: 0 IO Block: 4096 Regular File
Device: 301h/769d Inode: 115548 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: Thu Jul 4 20:42:10 2002
Modify: Thu Jul 4 20:42:10 2002
Change: Thu Jul 4 20:42:25 2002

File: "symlink" -> "blabla"
Size: 6 Blocks: 0 IO Block: 4096 Symbolic Link
Device: 301h/769d Inode: 115570 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: Thu Jul 4 20:42:31 2002
Modify: Thu Jul 4 20:42:30 2002
Change: Thu Jul 4 20:42:30 2002

[edit]
Hier is 't trouwens makkelijk te zien, blabla en hardlink wijzen naar dezelfde inode. Volgens mij moet je ook 't omgekeerde wel kunnen doen, dus bij een inode alle filenames displayen... Iemand?

  • _nethack
  • Registratie: September 2000
  • Laatst online: 17:04

_nethack

We're all MAD here

Je kunt het met een ls -l heel makkelijk zien of er meerdere links naar dezelfde file wijzen:
code:
1
2
3
4
5
6
7
8
9
10
11
total 14
drwxr-xr-x    2 root     root       128 Jul  4 20:54 .
drwx------   19 root     root       833 Jul  4 20:54 ..
-rw-r--r--    1 root     root       6 Jul  4 20:54 file
-rw-r--r--    2 root     root       6 Jul  4 20:54 hardlink1
-rw-r--r--    2 root     root       6 Jul  4 20:54 hardlink2
lrwxrwxrwx    1 root     root       4 Jul  4 20:54 symlink -> file

          ^
          |
  linkcount --+

Het tweede veld is de linkcount. hardlink1 en hardlink2 zijn twee links naar hetzelfde bestand, file is een kopie van dat bestand, symlink is een symlink naar file.

Met 'ls -li' zie je dat ze naar dezelfde inode wijzen:
code:
1
2
3
4
5
6
7
total 14
  46222 drwxr-xr-x    2 root     root       128 Jul  4 20:54 .
    129 drwx------   19 root     root       833 Jul  4 20:54 ..
  46390 -rw-r--r--    1 root     root       6 Jul  4 20:54 file
  46391 -rw-r--r--    2 root     root       6 Jul  4 20:54 hardlink1
  46391 -rw-r--r--    2 root     root       6 Jul  4 20:54 hardlink2
  46392 lrwxrwxrwx    1 root     root       4 Jul  4 20:54 symlink -> file

Sometimes you just have to sit back, relax, and let the train wreck itself


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13:47

deadinspace

The what goes where now?

Symlinks kun je op verscheidene manieren zien: als je ls -l doet, staat vooraan de permissies een 'l' ipv een '-', en met ls --color krijgen symlinks een andere kleur (plus nog datgene wat ru1 noemde).

Hardlinks kun je in principe niet 'zien'. Een file met een hardlink erheen is in feite niks anders dan twee verschillende filenames die aan dezelfde filedata gekoppeld zijn.
Als je ls -l doet, zie je direct na de permissies een getal staan. Dit is het aantal hardlinks naar die file (waarbij de originele naam ook telt; files hebben daar dus minimaal 1 staan). Je kunt afaik niet zien hoe de andere filenaam heet die eraan gekoppeld is.

[edit] Kmoet op typecursus [/edit]

  • The Jester
  • Registratie: Januari 2000
  • Laatst online: 26-11-2024

The Jester

The fool escaped from paradise

Topicstarter
Juist...

<SHAME>
Stat vermoedde ik reeds, maar bleek nog niet geïnstalleerd te zijn...
</SHAME>

Maar goed: * The Jester is U bijzonder dankbaar! :D

As you grow up and leave the playground where you kissed your prince and found your frog...


  • JF_
  • Registratie: Juni 2001
  • Laatst online: 13-08 17:11

JF_

Damn... Nooit geweten dat good ol' ls zoveel info kan laten zien... Zo leer je nog eens wat.
Btw, als je 't inode weet kan je met 'find / -inum <inode>' achterhalen welke files allemaal op die inode zitten. Duurt wel een tijdje voor 'ie klaar is.
Zie ook http://www.tldp.org/LDP/LG/issue44/oneill.html

  • Papillon
  • Registratie: Januari 2000
  • Laatst online: 07-08 14:18

Papillon

Spring 's in the Air...

Hardlink kun je alleen zien doordat het dezelfde Inode nummer heeft als de originele bestand. Soft links hebben zoals hierboven al aangegeven een andere Inode, Is maar een kilobytje of zo en heeft inderdaad een permissie lrwxrwxrwx.

Hardlinks kunnen alleen in een enkele mounted fs en soft links mogen over diverse fs'en (ondere diverse dirs gemount) heen.

F u cn rd ths, u mght hv a gd jb n cmptr prgmmng.


  • _nethack
  • Registratie: September 2000
  • Laatst online: 17:04

_nethack

We're all MAD here

Op donderdag 04 juli 2002 23:51 schreef Papillon het volgende:
Hardlink kun je alleen zien doordat het dezelfde Inode nummer heeft als de originele bestand.
Eigenlijk is er bij hardlinks geen sprake van 'het originele' bestand. Op het moment dat je een hardlink maakt naar een bestaand bestand, zijn ze beide het originele bestand. Als je de eerste hardlink dan verwijderd bestaat het bestand nog steeds onder de tweede link.

Sometimes you just have to sit back, relax, and let the train wreck itself

Pagina: 1