Portál AbcLinuxu, 6. května 2025 07:18

Hrátky se symlinky

25.10.2005 22:18 | Přečteno: 1125× | Linux

Právě se mi podařilo se zamotat ve vlastním chaosu symlinků, tak jsem se vydal trochu zkoumat jejich chování. Proč je pro ls symlink něco jiného než pro cd?

Nejdříve příklad, na kterém si to můžete vyzkoušet:

mkdir dir1 dir2
touch dir1/file_in_1 dir2/file_in_2
ln -s ../dir1 dir2/d1

Tím vznikla takováto struktura:

$ ls -lR
.:
total 0
drwxr-xr-x  2 michal michal 22 2005-10-25 22:09 dir1
drwxr-xr-x  2 michal michal 31 2005-10-25 22:09 dir2

./dir1:
total 0
-rw-r--r--  1 michal michal 0 2005-10-25 22:08 file_in_1

./dir2:
total 0
lrwxrwxrwx  1 michal michal 8 2005-10-25 22:09 d1 -> ../dir1/
-rw-r--r--  1 michal michal 0 2005-10-25 22:08 file_in_2

Proč ale z d2 je .. něco jiného pro cd a pro ls?

dir2/d1$ ls
file_in_1
dir2/d1$ ls ..
dir1  dir2
dir2/d1$ cd ..
dir2$ ls
d1  file_in_2

Jak na ten zápis po napsání koukám, tak mi to připadá spíš jako core dump než zápis do blogu :-).

       

Hodnocení: -

zatím nehodnoceno
        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

25.10.2005 22:29 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Hrátky se symlinky
Odpovědět | Sbalit | Link | Blokovat | Admin
cd -P ..
Bash se defaultně snaží před uživatelem existenci symlinků utajit. Dřív fungovalo
cd ./..
ale teď už to asi nejde (bash-3.0).
25.10.2005 22:38 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Hrátky se symlinky
Jo to je ono, já věděl, že už jsem to jednou někde našel, jenom si vzpomenout :-).
DjAARA avatar 25.10.2005 23:54 DjAARA | skóre: 32 | Praha|Náklo|Olomouc
Rozbalit Rozbalit vše Re: Hrátky se symlinky
djaara@djaara ~ $ pwd
/home/djaara
djaara@djaara ~ $ cd ./..
djaara@djaara /home $ pwd
/home
djaara@djaara /home $ bash --version
GNU bash, version 3.00.16(1)-release (i686-pc-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.
djaara@djaara /home $
26.10.2005 11:30 Triton | skóre: 10 | blog: keep_slacking
Rozbalit Rozbalit vše Re: Hrátky se symlinky
Trochu mimo. Zkuste si přejít do adresáře přes symlink a zjistíte, že konstrukce cd ./.. už skutečně ignoruje fyzickou strukturu adresářů.
Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R' 2V,*3$D-EG4PC!<*(%%I"<*$` `

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.