Ist es falsch, unter Windows das Zeichen "~" als Pfad für das Basisverzeichnis zu verwenden? [geschlossen]

Antworten:

3

Das Tilde-Zeichen hat in Windows möglicherweise eine völlig andere Bedeutung, und ich würde es für ungültig oder zumindest nicht eindeutig halten, es zu verwenden, um auf das Basisverzeichnis des Benutzers zu verweisen.

Auf Dateisystemen, die keine langen Dateipfade unterstützen, wird die Tilde verwendet als Ersatzcharakter :

Ein langer Dateiname ist ein beliebiger Dateiname, der die Namenskonvention für MS-DOS-Kurznamen (auch als 8.3 bezeichnet) überschreitet. Wenn Sie einen langen Dateinamen erstellen, erstellt Windows möglicherweise auch eine kurze 8.3-Form des Namens, den 8.3-Alias ​​oder Kurznamen, und speichert ihn auch auf der Festplatte.

[…]

Auf vielen Dateisystemen enthält ein Dateiname eine Tilde (~) in jeder Komponente des Namens, die zu lang ist, um den 8.3-Namensregeln zu entsprechen.

Sie können mehr darüber lesen 8.3 Dateinamen auf Wikipedia Dies ist eine alte Dateinamenskonvention, die aus der Zeit von DOS stammt.

Das heißt, moderne Programme können in der Tat verwenden ~ Als Alias ​​für das Zuhause des Benutzers - z. B. PowerShell - lesen Sie die Antwort von @ Broam. Und natürlich gibt es einen Unterschied zwischen dem Benutzer, der etwas eingibt, das die Shell dann interpretiert, und dem, was eine Shell möglicherweise ausgibt. Da Sie jedoch nicht davon ausgehen können, dass Benutzer PowerShell verwenden oder sich mit Unix-Konventionen auskennen, würde ich dagegen raten.

slhck
quelle
Es ist selten, 13 Jahre alte Dateinamen zu finden, aber ich glaube, 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
Ja, Sie haben Recht - Sie müssen einen Ersatz in Betracht ziehen, der auftritt, nachdem der Benutzer einen Pfad mit einer Tilde eingegeben hat (ähnlich wie Bash ihn zuerst erweitern würde, bevor der Befehl tatsächlich eine Tilde sieht). Es gibt jedoch immer noch einige Unklarheiten, während unter Unix die Tilde für nichts anderes als IIRC verwendet wird.
slhck
1

In den meisten Fällen haben Sie recht (was sehr ärgerlich ist, wenn ich an meinem Arbeitscomputer bin).

Eine Ausnahme: PowerShell akzeptiert die Verwendung von ~ Zeichen und es wird zu Ihrem Ausgangsverzeichnis erweitert, wenn Sie die Tab-Vervollständigung verwenden.

Unterstützung für Bash-Installationen von Drittanbietern (wie die mit Git gelieferte Kopie) ~ auch.

Broam
quelle