ls -l zeigt ein symlinked Verzeichnis mit zwei abschließenden Schrägstrichen

377
MiniLud

Ich habe gerade mein ~/.configVerzeichnis in ein anderes kopiert und es mit einem Symlink verknüpft $HOME.

Wenn ich laufe ls -l, erscheint das so mit dem doppelten Schrägstrich am Ende:

lrwxrwxrwx 1 lud lud 22 Jul 23 20:25 .config -> /home/lud/dots/config// 

Ich kann mich nicht erinnern, ob ich das schon mal gesehen habe. Ich habe mir ein anderes symlinked Verzeichnis angesehen, um zu sehen, ob überall dasselbe passiert, aber das andere symlinked Verzeichnis hat nur einen Backslash am Ende.

Der Symlink funktioniert. Scheint nicht, als wäre irgendetwas kaputt. Ich frage mich nur, ob der zusätzliche Schrägstrich etwas bedeutet oder ob er überhaupt vorhanden sein soll.

0

2 Antworten auf die Frage

2
Kamil Maciorowski

POSIX definiert:

3.271 Pfadname

[…] Ein Pfadname kann optional ein oder mehrere nachfolgende <slash>Zeichen enthalten. Mehrere aufeinanderfolgende <slash>Zeichen werden als identisch angesehen <slash>, mit Ausnahme von genau zwei führenden <slash>Zeichen.

Jeder dieser Symlinks sollte funktionieren:

.config -> /home/lud/dots/config// .config -> /home/lud/dots/config/ .config -> /home/lud/dots/config 

(Auch wenn /home/lud/dots/configes sich um eine Datei handelt, wird nur der letzte Pfad zu einem gültigen Symlink.)

Ihr Symlink ist das, was er ist, weil er auf diese Weise erstellt wurde (sofern diese andere Antwort nicht zutrifft). Sie haben den Zielpfad anscheinend mit zwei nachgestellten Schrägstrichen angegeben, und es ist ein gültiger Pfad. Beachten Sie, dass Sie auf fast alles verweisen können. dieser Befehl

ln -s path/that//may///not/exist/foo//// baz 

wird einen Symlink erstellen

baz -> path/that//may///not/exist/foo//// 

Der Symlink selbst wird höchstwahrscheinlich unterbrochen, da sich foo/unter diesem Pfad kein Verzeichnis befindet . Die Existenz des Ziels ist wichtig, wenn Sie versuchen, den Symlink zu verwenden ln -s. Wenn path/that/may/not/exist/foo/vorhanden, funktioniert der Symlink.

1
grawity

Wenn Sie einen Aliasnamen haben, die Karten lszu ls -F, werden alle Dateinamen nach ihrem Typ Suffix.

Wenn diese Option aktiviert ist, werden alle Pfade zu Verzeichnissen mit einem Suffix versehen /. Wenn also im Zielpfad des Symlinks bereits ein nachfolgender umgekehrter Schrägstrich gespeichert ist, werden zwei angezeigt.

Um zu sehen, ob dies der Fall ist, listen Sie Ihre Aliasnamen mit `alias -p` auf. Kamil Maciorowski vor 6 Jahren 0