Ist es falsch, sich unter Windows auf das Zeichen "~" als Home-Verzeichnispfad zu beziehen?

335
user598527

Das Tilde-Zeichen ~funktioniert im Gegensatz zu Unix-Systemen unter Windows nicht als Home-Verzeichnis-Verknüpfung . Ich habe das Zeichen immer für alle Betriebssysteme als Ausgangspfad im schriftlichen Text verwendet, und ich frage mich, ob dies sachlich falsch ist.

%USERPROFILE% ist möglicherweise geeigneter, da sie im Windows Explorer als tatsächliche Verknüpfung verwendet werden kann.

0

2 Antworten auf die Frage

3
slhck

Das Tilde-Zeichen hat möglicherweise eine völlig andere Bedeutung in Windows, und ich würde es für ungültig oder zumindest mehrdeutig halten, wenn es auf das Home-Verzeichnis des Benutzers verweist.

In Dateisystemen, die keine langen Dateipfade unterstützen, wird die Tilde als Ersatzzeichen verwendet :

Ein langer Dateiname wird als beliebiger Dateiname betrachtet, der die kurze Namenskonvention im MS-DOS-Format (auch als 8.3 bezeichnet) überschreitet. Wenn Sie einen langen Dateinamen erstellen, erstellt Windows möglicherweise auch eine kurze 8.3-Form des Namens, genannt 8.3-Alias ​​oder Kurzname, und speichert sie auch auf der Festplatte.

[…]

In vielen Dateisystemen enthält ein Dateiname eine Tilde (~) in jeder Komponente des Namens, die zu lang ist, um die 8.3-Namensregeln zu erfüllen.

Weitere Informationen zu 8.3-Dateinamen finden Sie auf Wikipedia . Hierbei handelt es sich um eine herkömmliche Namenskonvention für Dateien, die auf die Zeit von DOS zurückgeht.

Das heißt, moderne Programme können in der Tat ~als Alias ​​für das Heim des Benutzers verwendet werden - beispielsweise PowerShell, siehe @ Broams Antwort. Und natürlich gibt es einen Unterschied zwischen dem Typ des Benutzers, den die Shell dann interpretiert, im Vergleich zu dem, was eine Shell ausgibt. Da Sie jedoch nicht davon ausgehen können, dass Benutzer PowerShell verwenden oder sich mit Unix-Konventionen auskennen, würde ich davon abraten.

Es ist selten, dass 13-jährige Dateinamen gefunden werden, aber gleichzeitig glaube ich, dass moderne Befehlsparser, die Tilde unterstützen (z. B. PowerShell und Bash), ~ in Dateinamen in dieser Situation verarbeiten können, da ~ / normalerweise das Präfix und ist nicht Teil des Dateinamens (zB README ~ 1.TXT) Broam vor 5 Jahren 0
Ja, Sie haben recht - man muss die Ersetzung in Betracht ziehen, nachdem der Benutzer einen Pfad mit einer Tilde eingegeben hat (ähnlich wie Bash es zuerst erweitern würde, bevor der Befehl tatsächlich eine Tilde sieht). Es gibt jedoch immer noch einige Unklarheiten, wohingegen die Tilde unter Unix für nichts anderes als IIRC verwendet wird. slhck vor 5 Jahren 0
1
Broam

In den meisten Fällen sind Sie richtig (was immens irritierend ist, wenn ich an meinem Arbeitscomputer bin).

Eine Ausnahme: PowerShell akzeptiert die Verwendung des ~Zeichens. Wenn Sie die Tabulatorvervollständigung verwenden, wird es zu Ihrem Basisverzeichnis erweitert.

Bash-Installationen von Drittanbietern (z. B. die mit Git gelieferte Kopie) werden ebenfalls unterstützt ~.