/ / ls -l zeigt ein symbolisch verkn├╝pftes Verzeichnis mit zwei abschlie├čenden Schr├Ągstrichen an - bash, symbolic-link, ls

ls -l zeigt ein symbolisch verkn├╝pftes Verzeichnis mit zwei abschlie├čenden Schr├Ągstrichen an - bash, symbolic-link, ls

Ich habe gerade meine kopiert ~/.config Verzeichnis zu einem anderen und verkn├╝pfte es zur├╝ck zu $HOME.

Wenn ich renne ls -l Das sieht so aus, 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 einmal gesehen habe. Ich habe mir ein anderes symbolisiertes Verzeichnis angesehen, um festzustellen, ob ├╝berall dasselbe passiert, aber das andere symbolisierte Verzeichnis hat am Ende nur einen Backslash.

Der Symlink funktioniert. Scheint nicht, dass irgendetwas kaputt ist. Ich frage mich nur, ob der zus├Ątzliche Schr├Ągstrich etwas bedeutet oder ob er ├╝berhaupt vorhanden sein soll.

Antworten:

1 f├╝r Antwort Ôäľ 1

Wenn Sie einen Alias ÔÇőÔÇőhaben, der zugeordnet ist ls zu ls -F, werden alle Dateinamen entsprechend ihrem Typ mit einem Suffix versehen.

Wenn diese Option aktiviert ist, werden alle Pfade zu Verzeichnissen mit einem Suffix versehen /. Wenn im Zielpfad des Symlinks bereits ein abschlie├čender Backslash gespeichert ist, werden zwei angezeigt.


2 f├╝r Antwort Ôäľ 2

POSIX definiert:

3.271 Pfadname

[ÔÇŽ] Ein Pfadname kann optional ein oder mehrere nachgestellte Zeichen enthalten <slash> Zeichen. Mehrfach hintereinander <slash> Zeichen werden als dasselbe Zeichen betrachtet <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

(Obwohl wenn /home/lud/dots/config war eine Datei, nur der letzte Pfad w├╝rde einen g├╝ltigen Symlink ergeben).

Ihr Symlink ist das, was er ist, weil er auf diese Weise erstellt wurde (sofern nicht anders angegeben) diese andere Antwort gilt). Sie haben den Zielpfad anscheinend mit zwei Schr├Ągstrichen angegeben, und es handelt sich zuf├Ąllig um einen g├╝ltigen Pfad. Beachten Sie, dass Sie auf fast alles verlinken k├Ânnen. dieser Befehl

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

erstellt einen Symlink

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

Der Symlink selbst ist h├Âchstwahrscheinlich defekt, weil Sie kein Verzeichnis haben foo/ auf diesem Weg. Die Existenz des Ziels spielt keine Rolle, wenn Sie versuchen, den Symlink zu verwenden ln -s obwohl. Ob path/that/may/not/exist/foo/ existiert, wird der Symlink funktionieren.