Rolf Leggewie <[EMAIL PROTECTED]> writes: > Hm. Warum aber wechselt dann "cd .." nach /usr/src/ und nicht nach > /mnt/hdc1/src/?
cd .. wird auf der Shell-ebene implementiert. Es wird so interpretiert, das im aktuellen Pfad eine Ebene nach oben gegangen wird. Wenn der aktuelle Pfad also /usr/src/linux ist, wird einfach das letzte weggelassen. Das ist ja auch das, was man üblicherweise haben will. mit ls .. ist das was anderes. '..' ist nämlich ein hard-link auf das Parent-Verzeichnis, in diesem Fall also auf /mnt/hdc1/src. ls '..' listet das Verzeichnis '..'. Letzteres Verhalten ist z.Bsp. dann *sehr* wichtig, wenn in dem Verzeichnis weitere relative Links auftauchen. Beispiel: /usr/src/linux -> /mnt/hdc1/src/linux-1.2.3 /mnt/hdc1/src/lionux-1.2.3/test -> ../../../hdc3/foo/bar/test Eine Referenz auf /usr/src/linux/test referenziert dann /mnt/hdc3/foo/bar/test. Wenn er die '..' allerdings relativ zum aktuellen Pfad interpretieren würde, würde er versuchen auf /foo/bar/test zuzugreifen, was es wahrscheinlich nicht gibt. Stattdessen werden die '..' einfach als hardlink gelesen, das funktioniert dann immer. Bin mal über dieses Problem in einem meiner eigenen Skripte gestolpert ... hoffe, das ist so verständlich und korrekt :-) Stefan.
pgpKQsl0nIxUt.pgp
Description: PGP signature