Michal Čihař - Archive for Oct. 26, 2005

Hrátky se symlinky

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 :-).