Gibt es einen akzeptierten Namen zum Verweisen auf ~/-Pfade?

Gibt es einen akzeptierten Namen zum Verweisen auf ~/-Pfade?

Gibt es einen akzeptierten Namen zum Verweisen auf ~/-Pfade im Home-Verzeichnis?

Bei der Suche nach der Antwort bin ich auf Beiträge gestoßen, in denen verschiedene Begriffe verwendet werden:

  • ~/ Syntax
  • ~/ Pfade
  • ~/ erweiterte Pfade
  • ~/ Notation

Ich konnte jedoch keinen durchgängig verwendeten und praktischen Begriff für die Verwendung von ~/-Syntaxpfaden finden, mit dem sie von einem vollständigen absoluten Pfad oder einem relativen Pfad unterschieden werden können.

Bitte beachten Sie, dass mir bewusst ist, dass ~/-Pfade absolute Pfade sind, da sie von der Shell erweitert werden. Ich bin auf der Suche nach einer praktischen Möglichkeit, auf sie zu verweisen.

Antwort1

~/ist nur einer von mehreren magischen "Tilde-Erweiterungen". Tilde-Erweiterungen werden insbesondere mit UNIX-Shells in Verbindung gebracht. Im Gegensatz zu ihnen $HOMEwerden Tilde-Erweiterungen nicht allgemein verstanden und können von Shell zu Shell unterschiedlich sein. Die einzige Gemeinsamkeit ist die Einhaltung des POSIX-Standards (größtenteils), und laut Wikipedia basiert der POSIX-Shell-Standard auf einer „strengen Teilmenge“ der Korn-Shell, einer Ableitung der Bourne-Shell. Zu den Nachkommen der Bourne-Shell zählen insbesondere bash und zsh.Das sagt POSIX zu Tilde-Erweiterungen:

Ein „Tilde-Präfix“ besteht aus einem nicht in Anführungszeichen gesetzten Zeichen am Anfang eines Wortes, gefolgt von allen Zeichen vor dem ersten nicht in Anführungszeichen gesetzten Zeichen im Wort oder allen Zeichen im Wort, wenn kein vorhanden ist. In einer Zuweisung (siehe XBD-Variablenzuweisung) können mehrere Tilde-Präfixe verwendet werden: am Anfang des Wortes (d. h. nach der der Zuweisung), nach jedem nicht in Anführungszeichen gesetzten Zeichen oder beides. Ein Tilde-Präfix in einer Zuweisung wird durch das erste nicht in Anführungszeichen gesetzte Zeichen oder beendet. Wenn keines der Zeichen im Tilde-Präfix in Anführungszeichen gesetzt ist, werden die Zeichen im Tilde-Präfix nach dem als möglicher Anmeldename aus der Benutzerdatenbank behandelt. Ein portabler Anmeldename darf keine Zeichen außerhalb des in der Beschreibung der Umgebungsvariablen LOGNAME in XBD „Andere Umgebungsvariablen“ angegebenen Satzes enthalten. Wenn der Anmeldename null ist (d. h. das Tilde-Präfix enthält nur die Tilde), wird das Tilde-Präfix durch den Wert der Variable HOME ersetzt. Wenn HOME nicht gesetzt ist, sind die Ergebnisse nicht angegeben. Andernfalls wird das Tilde-Präfix durch einen Pfadnamen des ursprünglichen Arbeitsverzeichnisses ersetzt, das mit dem Anmeldenamen verknüpft ist, der mit der Funktion getpwnam() abgerufen wurde, wie im Band Systemschnittstellen von POSIX.1-2008 definiert. Wenn das System den Anmeldenamen nicht erkennt, sind die Ergebnisse undefiniert.

Der aus der Tilde-Erweiterung resultierende Pfadname soll so behandelt werden, als ob er in Anführungszeichen stünde, um zu verhindern, dass er durch Feldaufteilung und Pfadnamenerweiterung geändert wird.

Im Wesentlichen bedeutet das, ~dass $HOME und ~foo/Links zu denanfängliches Arbeitsverzeichnisdes Benutzers foo. Damit ist grob, aber nicht immer, das Home-Verzeichnis von foo gemeint. (Die einzige Ausnahme, die mir einfällt, ist root.)

In BaSH wird dieser Standard für Tilde-Erweiterungen nicht eingehalten inein paar Möglichkeiten, keine besonders bedeutsam. BaSH hat auch andere witzige Tilde-Erweiterungen,Verknüpfungmit freundlicher Genehmigung des Kommentators @phk. Sie können sie alle sammeln!


Aber ich schweife ab. Wenn wir darüber sprechen, wie ~/ genannt wird, bin ich mir nicht sicher, ob Sie sich auf den Begriff für den Pfad selbst (in der Form ~/x/y/z) oder auf das Phänomen der Verwendung ~/zur Erstellung des besagten Pfads beziehen (also Kunstwerk vs. Kunst, Ableitung vs. Differenzierung). Denn ~/ pathsund ~/ expanded pathsscheinen sich auf Ersteres und ~/ syntaxund ~/ notationauf Letzteres zu beziehen. Ich mache es wahrscheinlich zu kompliziert, aber Sprache ist eine wankelmütige Sache. Beispielsweise ~/ pathsbetont die Form der Pfade als beginnend mit ~/, während ~/ extended pathsbetont, dass die Funktion ~/ausgeführt wird, um den Pfad dieser Form zu erstellen.

Wie dem auch sei, Sie haben wahrscheinlich inzwischen erkannt, dass

Es gibt keinen akzeptierten Namen

da all diese Begriffe im Umlauf sind und das Thema unseres Wissens nach von den zuständigen Stellen nicht offiziell behandelt wurde. Oder anders ausgedrückt: All diese Begriffe beschreiben dasselbe – keine konkurrierenden Bezeichnungen. Sie haben keinen offiziellen Namen, aber jeder, der ein bisschen Bash kennt, erkennt sofort, was sie bedeuten – und wenn die Leute verstehen, wovon Sie sprechen, wen interessiert es, wie Sie es nennen? Sie können selbst entscheiden, welchen Begriff Sie mögen. Mir persönlich gefällt ~/ paths, ausgesprochen„Tilde-Schrägstrich-Pfade“Und um auf die Phänomene hinzuweisen„Tilde-Schrägstrich-Pfad-Abkürzung“. Ehrlich gesagt glaube ich nicht einmal, dass sie einen Namen brauchen ...

verwandte Informationen