Wenn ich cd
einen Link habe, wird meinem aktuellen Pfad der Pfad des Links vorangestellt und nicht der Pfad des Verzeichnisses, auf das der Link verweist. Z.B
~/dirlinks/maths$ ls -l logic
lrwxrwxrwx 1 tim tim 71 Jul 27 10:24 logic -> /windows-d/academic discipline/study objects/areas/formal systems/logic
~/dirlinks/maths$ cd logic
~/dirlinks/maths/logic$ pwd
/home/tim/dirlinks/maths/logic
~/dirlinks/maths/logic$ cd ..
~/dirlinks/maths$
Ich möchte, dass mein aktueller Pfad in den Pfad des verknüpften Verzeichnisses geändert wird, damit ich auch mit den übergeordneten Verzeichnissen des verknüpften Verzeichnisses arbeiten kann. Was gibt es neben ls
dem Link zum Herausfinden des verknüpften Verzeichnisses und zum Einfügen cd
in dieses Verzeichnis einfacher, um dies zu erreichen? cd
Wie ändern Sie beispielsweise nach dem Einfügen eines Links Ihren aktuellen Pfad in den Pfad des verknüpften Verzeichnisses?
quelle
cd -P .
nach dem Original tuncd
.Sie können verwenden
readlink
, um zu bestimmen, wo Ihre Verknüpfung verweist, und diese Ausgabe als Ziel Ihrer Verbindung angebencd
.Bei zusätzlichen Symlinks, die auf Symlinks verweisen,
readlink
wird lediglich das Ziel bereitgestellt, es sei denn, Sie geben eine der Optionen an, um beispielsweise Symlinks zu einem kanonischen Dateiziel zu folgenreadlink -f <link>
.quelle
Korn-ähnliche Shells verfolgen symbolische Links im Pfad zum aktuellen Verzeichnis (dies wird als logische Verfolgung des aktuellen Verzeichnisses bezeichnet). Wenn Sie alle symbolischen Links erweitern möchten, übergeben Sie die Option
-P
an das integriertecd
Verzeichnis (für die physische Verfolgung des aktuellen Verzeichnisses):Wenn Sie sich in einem Verzeichnis befinden, auf das Sie über einen symbolischen Link zugegriffen haben, und das verfolgte aktuelle Verzeichnis auf den Pfad mit erweiterten symbolischen Links umschalten möchten, führen Sie es aus
Wenn Sie den Pfad zum aktuellen Verzeichnis mit erweiterten symbolischen Links drucken möchten, führen Sie ihn aus
pwd -P
. Wenn Sie in bash die logische Verfolgung deaktivieren möchten, führen Sie Folgendes ausset -P
. in zsh laufenset -w
odersetopt chase_links
.quelle