Autor Zpráva
matthew
Profil
Procházel jsem si různé funkce pro práci se soubory, a narazil jsem na link()
V mauálu se o ní píše jen to, že vytvoříl Hard Link, ale co to známená, netuším...

Docela by mě zajímalo, k čemu tato funkce slouží...
djlj
Profil
Je to něco jako zástupce ve Windows.
matthew
Profil
Takže pokud to chápu dobře:
link($original, $zastupce)
vytvoří soubor $zastupce, ve kterém bude obsah z $original.
A když se změní soubor $original, automaticky se zmeni i $zastupce?

Asi ne, co? :-o
djlj
Profil
Změní, $zastupce je jen symlink stejně jako zástupce ve Windows.

Jinak možná by bylo vhodné to i zkusit, než věštit z koule, co to asi bude dělat.
matthew
Profil
Jenže v manuálu píšou:
Poznámka: Tato funkce nefunguje na Windows systémech
djlj
Profil
Ano, píšou, tak to vyzkoušej na Linuxu.
Miloš
Profil
Protože tady padla spousta velkých nepřesností a omylů, pokusím se problematiku hardlinů-symlinků vysvětlit:

1) Každý soubor, který je na disku uložen, najdeme v nějakém adresáři (=složce) pod v tomto adresáři unikátním jménem, například koza.html
2) Když toto jméno (tuto reprezentaci souboru jeho jménem) smažeme, smažeme i soubor (ve skutečnosti smažeme pouze ten odkaz, ale sektory disku, ve kterých byl zapsán, jsou uvolněny k dalšímu používání; proto smazaný soubor můžeme speciální utilitou obnovit do té doby, než jsou dané sektory přepsány).
3) Tomuto jménu můžeme říkat hardlink. Pokud souborový systém umožňuje tvorbu hardlinků, můžeme tento soubor (vždy ale v rámci tohotéž diskového oddílu, neboli partition) nalézt na více místech, respektive pod různými jmény. Vždy jde ale o týž soubor, tedy o bajty umístěné v konkrétních sektorech disku. Dokud pak existuje alespoň jeden takovýto hardlink, máme k souboru přístup.
Jedno z využití hardlinků je například v tom, když máme stovky–tisíce souborů tříděných podle kategorií (mapř. mp3 podle interpretů, názvů alb, žánrů…) – v každém takovém adresáři můžeme najít soubory, které zároveň najdeme v adresáři jiném; vždy jde o jeden a týž soubor, ale smažeme-li jej někde, zůstává nesmazán na všech ostatních místech (dokud nesmažeme všechny jeho výskyty, neboli hardlinky).
Hardlinky jsou běžné pod linuxem (ext2, ext3, reiserFS a další), ale lze je vytvářet i na NTFS, jen k tomu Microsoft neudělal žádnou „fičůru“ (rozuměj feature, udělátko).
4) Hardlink nemůžete udělat adresáři, vždy jen souboru.
5) Pokud libovolný soubor/hardlink zkopírujete, vždy vytváříte kopii souboru, tak jak to znáte při kopírování souborů. Nikdy takto nezkopírujete odkaz, vždy vytváříte nový soubor.

6) Zástupce (pod windows soubory lnk nebo pif) mají pod linuxem obdobu v souborech ikon na ploše (KDE, Gnome, XFCE) a mají tuším příponu desktop. Jde o klasický odkaz souborem. Když zkopírujete někomu zástupce, je mu takový zástupce k ničemu.

7) Symbolický odkaz („symlink“) je odkaz podobný jako zástupce, ale neodkazuje se zástupcem, nýbrž na úrovni systému souborů. Ve windows existuje obdoba těchto odkazů (pouze na NTFS) a říká se jim junction points – narozdíl od linuxu však tyto „přípojné body“ můžete vytvářet pouze adresářům (v linuxu i souborům). Ve všech případech nejsou symlinky (i junction points) omezeny jednou diskovou oblastí, takže můžete například disk připojit do adresáře na jiném disku, konkrétní adresář na CD připojíte do nějakého podadresáře ve svých dokumentech a podobně. Podmínkou je, že se přípojný bod nachází na oblasti, která je podporuje (ext2, ext3, reiserFS, NTFS a další); cíl tohoto odkazu však může ležet kdekoli.
Když vytvoříte symlink například pro adresář, který je na CD a toto CD není vloženo, pak odkaz sice uvidíte, ale není možné ho nijak použít (takový „virtuální“ adresář neotevřete).
Microsoft pro tvorbu symlinků opět do windows nezabudoval žádné udělátko, s výjimkou možnosti připojit disk (oblast) do nějakého adresáře pomocí správce disků.

Na závěr pár odkazů na nástroje, pomocí nichž budete moci těžit z výše uvedených vymožeností i pod windows:

Symlinky:
http://www.microsoft.com/technet/sysinternals/FileAndDisk/Junction.msp x (z příkazového řádku)
http://www.rekenwonder.com/linkmagic.htm (v grafickém provedení)

Hardlinky:
http://www.schinagl.priv.at/
http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0