Was bedeutet das @-Zeichen in PuTTY, wenn es direkt nach einem Verzeichnis steht?
ex.
pdf/
public_html/
video@
Es handelt sich um einen symbolischen Link. Auf einem anderen Server steht hinter demselben symbolischen Link jedoch kein @-Zeichen.
Antwort1
Es ist der Unterschied zwischen:
$ ls
Und
$ ls -F
aber es ist kein Kitt.
Antwort2
Ich weiß, dass dies bereits beantwortet wurde, aber ich möchte noch einige Einzelheiten hinzufügen und es ist schwierig, in einem Kommentarfenster ausführliche Erklärungen abzugeben.
Der ls
Befehl verwendet das -F
Flag, das bestimmte Dateitypen mit nachgestellten Zeichen kennzeichnet. Verzeichnisse verwenden /
, ausführbare Dateien *
, symbolische Links @
. Wenn Sie ls
auf zwei Maschinen tippen und auf beiden dasselbe Dateisystem betrachten, aber unterschiedliche Dinge sehen, haben Sie vermutlich auf einer Maschine einen Alias oder eine Funktion für , ls
die nicht mit der anderen übereinstimmt. Tippen Sie auf beiden Maschinen type ls
und ich wette, Sie erhalten auf beiden Maschinen unterschiedliche Ergebnisse.
Außerdem sprechen Sie in Ihrem Kommentar über Hardlinks und Symlinks. Sie sind sehr unterschiedlich. Ein Symlink ist ein Zeiger auf eine Datei oder ein Verzeichnis. Er ist einer Verknüpfung in Windows sehr ähnlich (obwohl UNIX es besser gemacht hat als Windows, das es schlecht kopiert hat). Er kann überall hin zeigen; auf diese Festplatte, auf eine andere Festplatte. Sogar das, worauf er zeigt, kann da sein oder auch nicht. Wenn ich einen Symlink habe, der auf eine Datei/ein Verzeichnis zeigt, das nicht existiert, nennt man das einen baumelnden Symlink.
Ein Hardlink ist der Name der Datei. Stellen Sie sich eine Datei im Grunde aus zwei Teilen vor. Es gibt die Daten, die eigentlichen Informationen, die Sie in die Datei einfügen. Ihren Text, Ihr Lied, was auch immer. Oder nichts bei einer leeren Datei. Denken Sie dann an die Metadaten, Informationen zu Ihrer Datei. Wie heißt sie? Um welchen Dateityp handelt es sich (Datei, Verzeichnis, FIFO, symbolischer Link usw.), wann habe ich das letzte Mal darin geschrieben und welche Dateiberechtigungen gelten? Diese Metadaten sind der Hardlink. Unter UNIX besteht keine Eins-zu-eins-Beziehung zwischen diesen Metadaten aus Name und anderen Dingen und der eigentlichen Datei. Ich kann mehrere dieser Links erstellen – unterschiedliche Namen, unterschiedliche Speicherorte, unterschiedliche Berechtigungen. Dies nennt man Hardlinking. Das System erstellt immer einen dieser Hardlinks, wenn Sie eine Datei erstellen, hard-linking
verweist aber normalerweise nur darauf, wenn Sie manuell einen weiteren mit erstellen ln
. Ein Hardlink kann sich nur auf demselben Dateisystem wie die Daten befinden, ein weiterer Unterschied zu symbolischen Links. Linux-Systeme erlauben außerdem nicht das Erstellen von Hardlinks zu Verzeichnissen, da dies zu Schleifen in der Verzeichnisstruktur und damit zu echten Problemen führen kann (MacOSX lockert dies ein wenig, da es Hardlinks verwendet, um Time Machine(tm)-Backups für den Benutzer unsichtbarer zu machen).
Antwort3
Geben Sie ein man ls
, um mehr über die Bedeutung der Symbole zu erfahren, die beim Auflisten von Dateien angegeben werden. @
bedeutet, dass die Datei einesymbolischer Link.