Die Verknüpfung mit einem Verzeichnis führt zu unterschiedlichen Ergebnissen, ls -l
je nachdem, ob ich ln -s dir
oder ln -s dir/
. Aber was ist der eigentliche Unterschied und welchen sollte ich bevorzugen, warum?
30
Es gibt keinen Unterschied. (Es würde einen Unterschied geben, wenn das Ziel kein vorhandenes Verzeichnis wäre.)
Der letzte Schrägstrich ist möglicherweise aufgrund der Shell-Vervollständigung dort angekommen: Bei einigen Konfigurationen wird " ln -s tar
TabSpacelink
to" abgeschlossen ln -s target/ link
.
foo -> bar/
dannfoo/qux
gleichbedeutend mitbar//qux
. Während der Titel der Frage formell nicht beinhaltetfoo -> bar/
, diskutiere ich diesen Fall auch in meiner Antwort dort.Das einzige, was mir einfällt, ist, dass es Sie vor jemandem "schützt", der das Verzeichnis löscht und eine Datei erstellt.
Die Version mit dem Schrägstrich bricht ab, wenn das Ziel durch eine Datei ersetzt wird.
quelle
Interessante Frage. Ich habe einen kleinen Test gemacht:
Wie Sie sehen, gibt es keinen Unterschied in der Anzahl der Systemaufrufe (zumindest für ls), und die Traces sehen sehr ähnlich aus. Dies ist jedoch nur ein Dump-Test, und ich bin nicht sicher, ob es Unterschiede gibt.
quelle
Ihre Frage bezieht sich wirklich auf das Verhalten des
ls
Programms.1) Wenn Sie tun,
ls -l $dir
wo $ dir tatsächlich ein Symlink ist, erhalten Sie Informationen über den Symlink.2) Wenn Sie tun,
ls -lL $dir
wo $ dir ein Symlink zu einem Verzeichnis ist, erhalten Sie Informationen über das Zielverzeichnis.3) Wenn Sie dies tun
ls -l $dir/.
, wird erzwungen, dass der Symlink befolgt wird, und es werden Informationen zum Zielverzeichnis bereitgestellt.4) Wenn Sie dies tun
ls -l $dir/
, können die Ergebnisse in Abhängigkeit von der Version von 1 oder 3 identisch seinls
verwendet wird. Ich war an eine ältere Version von Solaris gewöhnt, die es wie # 1 machte, und war überrascht, dass Linux es wie # 3 machte.Ohne einen abschließenden Schrägstrich, wenn Sie sich Sorgen machen müssen, ob es sich bei einem angegebenen Verzeichnisnamen um ein tatsächliches Verzeichnis handelt, und nicht um einen Symlink zu einem Verzeichnis.
Mit abschließendem Schrägstrich, wenn Sie sich mehr um die Dateien im Verzeichnis als um das Verzeichnis selbst sorgen.
quelle