HINWEIS: Dieses Verhalten wird per Fernzugriff mit SSH beobachtet.
Mir ist aufgefallen, dass ich, wenn ich mit einem Symlink in ein Verzeichnis gezogen bin, das nicht verwenden kann ..
Eintrag in der Verzeichnisliste, um wieder in das übergeordnete und dann in nachfolgende Verzeichnisse zu gelangen. Zum Beispiel:
/DirA/SymLinkToDirB
/DirA/SomeOtherFile.txt
/DirA/DirB
/DriA/DirC
/DirA/DirB/someFile.txt
Wenn ich gerade dabei wäre DirA
und gab den folgenden Befehl aus: cd SymLinkToDirB
dann eine nachfolgende pwd
würde lösen /DirA/DirB
, wie erwartet. Folgendes würde jedoch nicht funktionieren, wenn ich gerade in bin DirB
über den symLink.
vim ../SomeOtherFile.txt
, oder auch cd ../DirC
Weiter schlagen tab
Bei der Verwendung von CD werden normalerweise die Verzeichnisse aufgelistet, in die ein Benutzer gelangen kann. Dieses Verhalten, das man auf einem lokalen Rechner erwartet und beobachtet, funktioniert jedoch auch nicht über SSH.
Jedoch folgendes tut Arbeit, wenn wir schon in sind DirB
dort über den Symlink gekommen: cd ../SymLinkToDirB/
, das ist eine ziemlich nutzlose Aktion. Es scheint, als ob sich der Symlink in einem eigenen Verzeichnis (dem übergeordneten Verzeichnis) befindet.
Zweifellos hat dies damit zu tun, wie Symlinks in SSH gehandhabt werden. Durch welchen Mechanismus werden Symlinks über SSH gehandhabt, die dieses Verhalten ermöglichen?
quelle
ln -s
)ln -s /DirA/DirB/ /DirA
einen symbolischen Link erstellenDirB
und legen Sie es hineinDirA
.Antworten:
Das
cd
Befehl versucht, klug zu sein und sich genau zu erinnern, wie Sie Sie gelangen in das Verzeichnis, in dem Sie sich gerade befinden, und nimmt an, dass Sie denselben Pfad wieder ausführen möchten.Sobald Sie sich jedoch im Verzeichnis befinden, können andere Befehle (z. B.
vim
) wird das vorhandene sehen..
Verzeichnis und folgen Sie ihm durch das reale Dateisystem.Was ich manchmal mache, ist
cd symlinktoDirB/../DirB/..
. Verwenden Sie den zusätzlichen Satz von..
s wird zwingencd
um den tatsächlichen Dateisystempfad zu sehen und ihm zu folgen.quelle