Normalerweise bedeutet dies, dass das Home-Verzeichnis des Benutzers z. B. das Home-Verzeichnis ~mike/des Benutzers mikeund ~/Ihr eigenes Home-Verzeichnis ist. Es ist mir jedoch unklar, ob ~/und ob ~mike/dies als absolut oder relativ anzusehen ist. es scheint von der gegebenen Definition abzuhängen (wenn jemand eine Referenz vorlegen kann, schreibe bitte einen Kommentar).
Beachten Sie, dass ich hier von Unix-basierten Systemen spreche.
Sie sind absolut, weil sie Synonyme für absolute Pfade sind: Unter UNIX kann der absolute Pfad aus dem Inhalt der /etc/loginDatei abgeleitet werden. Die Erweiterung wird traditionell von der Shell durchgeführt, aber jede Sprache, die den Anspruch hat, "Scripting" zu sein, wird dies auch tun.
Charles Stewart
2
+1: Ich wusste nichts über die ~username/Sache.
Wuffers 16.11.10
2
Interessanterweise wird Windows PowerShell auch ~als Synonym für das private Verzeichnis des Benutzers akzeptiert.
Joey
1
Jeffery Snover hat gesagt, dass PowerShell ursprünglich auf VIM / EMACs basiert
Anonymous Type
1
@ Charles Stewart ist vermutlich mindestens ~ / relativ, da dies vom Kontext des Benutzers abhängt. Einige Referenzen definieren auch einen absoluten Pfad als einen Pfad, der aus dem Stammverzeichnis des Dateisystems stammt, was offensichtlich nicht der Fall ist. Wenn Sie eine Referenz für Ihre Aussage haben, teilen Sie bitte!
Adrian Mouat
21
Tatsächlich sind beide Antworten von Adrian Mouat und studiohack richtig.
In Betriebssystemen mit eingeschränkter Namenskonvention (ältere Version von Windows / DOS usw.) bedeutet dies einen langen Namen.
e.g. "c:\program files\" is equivalent to "c:\progra~1\"
In einigen Betriebssystemen (nämlich Unix) bedeutet dies Heimatverzeichnis (und kann als absoluter, aber nicht kanonischer Pfad angesehen werden). e.g."/a/vol01/usr/mike/" might be shortened to "~/mike/"
* wobei 'usr' das Heimatverzeichnis ist.
Im Kontext von Build-Skripten handelt es sich wahrscheinlich um die Unix-zentrierte Version.
Charles Stewart
2
In Unix-Pfaden werden normalerweise Schrägstriche anstelle von umgekehrten Schrägstrichen verwendet.
Torben Gundtofte-Bruun 16.11.10
@torbengb, wahr ... opps
Eran
1
Eine kleine Korrektur zu Xenoroses ansonsten hervorragender Antwort. Dateinamen wie "progra ~ 1" gelten nicht für ältere Betriebssysteme. Mein Windows 7-System verwendet sie immer noch. Dies ist eine Legacy-Funktion, die alte Software unterstützt, die die langen Dateinamen in modernen Systemen nicht kennt. Alte Software geht davon aus, dass alle Dateinamen der 8.3-Konvention entsprechen . Wenn ein Dateiname mit dieser Konvention nicht funktioniert, das Dateisystem automatisch erzeugt einen zweiten, 8.3 kompatibel Namen.
Isaac Rabinovitch
12
In vielen Dateisystemen enthält ein Dateiname eine Tilde (~) in jeder Komponente des Namens, die zu lang ist, um den 8.3-Namensregeln zu entsprechen.
Hmm, funktioniert nicht ganz für Namen, die Punkte enthalten. (zB 192.168.1.1oder somefile.namewithdot)
Pacerier
5
Und wenn Sie ASP.NET programmieren, bedeutet dies die oberste Ebene der Website. Anstatt mit ../../images/some_image.jpg zu navigieren (und Ihre Schachtelungsebene falsch zu machen!), können Sie einfach ~ / images / some_image.jpg sagen
/images/some_image.jpgSie sollten zum Stammverzeichnis einer Website gelangen. Welche zusätzlichen Funktionen bietet die Tilde in ASP.NET?
Sonny
7
~ führt Sie zum Stammverzeichnis der Webanwendung, das nicht mit dem Stammverzeichnis der Website identisch ist, wenn Sie ein virtuelles Verzeichnis verwenden. Wenn Ihre Website beispielsweise auf dem Server im virtuellen Verzeichnis myapp installiert ist, wird ~ / images / myimage.jpg in myserver / myapp / images / myimage.jpg aufgelöst . Siehe msdn.microsoft.com/en-us/library/ms178116.aspx .
MCS
1
Hier sind einige Hinweise, die Ihnen helfen können, es besser herauszufinden:
$ readlink -f ~
$ echo $HOME
Hinweis: Dies $ist eine Konvention zum Angeben der Benutzerbefehlszeile. Sie ist kein Teil der Befehle.
Wenn der kurze Datei- / Verzeichnisname '~' enthält (wie "c: \ ololoo ~ 1"), kann der entsprechende lange Name dieser Datei / dieses Verzeichnisses die maximale Länge überschreiten (MAX_PATH = 260). Entwickler sollten dies mit dem Präfix "\\? \" Umgehen (selbst unter neueren Windows 10 kann der Benutzer die Unterstützung von "> 260" -langen Pfaden mit dem LongPathsEnabledRegistrierungsparameter oder mit der Gruppenrichtlinie "NTFS- Langpfade aktivieren" deaktivieren ). Ein Beispiel für diese Problemumgehung mit C # finden Sie in den Quellen der ZetaLongPaths-Bibliothek .
Antworten:
Normalerweise bedeutet dies, dass das Home-Verzeichnis des Benutzers z. B. das Home-Verzeichnis
~mike/
des Benutzersmike
und~/
Ihr eigenes Home-Verzeichnis ist. Es ist mir jedoch unklar, ob~/
und ob~mike/
dies als absolut oder relativ anzusehen ist. es scheint von der gegebenen Definition abzuhängen (wenn jemand eine Referenz vorlegen kann, schreibe bitte einen Kommentar).Beachten Sie, dass ich hier von Unix-basierten Systemen spreche.
Siehe http://en.wikipedia.org/wiki/Home_directory#Unix
quelle
/etc/login
Datei abgeleitet werden. Die Erweiterung wird traditionell von der Shell durchgeführt, aber jede Sprache, die den Anspruch hat, "Scripting" zu sein, wird dies auch tun.~username/
Sache.~
als Synonym für das private Verzeichnis des Benutzers akzeptiert.Tatsächlich sind beide Antworten von Adrian Mouat und studiohack richtig.
In Betriebssystemen mit eingeschränkter Namenskonvention (ältere Version von Windows / DOS usw.) bedeutet dies einen langen Namen.
In einigen Betriebssystemen (nämlich Unix) bedeutet dies Heimatverzeichnis (und kann als absoluter, aber nicht kanonischer Pfad angesehen werden).
e.g."/a/vol01/usr/mike/" might be shortened to "~/mike/"
* wobei 'usr' das Heimatverzeichnis ist.
quelle
Quelle: Benennen von Dateien, Pfaden und Namespaces - Kurze und lange Namen - MSDN
(Teilweise die Seite runter ...)
quelle
192.168.1.1
odersomefile.namewithdot
)Und wenn Sie ASP.NET programmieren, bedeutet dies die oberste Ebene der Website. Anstatt mit ../../images/some_image.jpg zu navigieren (und Ihre Schachtelungsebene falsch zu machen!), können Sie einfach ~ / images / some_image.jpg sagen
quelle
/images/some_image.jpg
Sie sollten zum Stammverzeichnis einer Website gelangen. Welche zusätzlichen Funktionen bietet die Tilde in ASP.NET?Hier sind einige Hinweise, die Ihnen helfen können, es besser herauszufinden:
Hinweis: Dies
$
ist eine Konvention zum Angeben der Benutzerbefehlszeile. Sie ist kein Teil der Befehle.quelle
Weitere Informationen zu Windows:
Wenn der Name der versteckten Datei mit "~" beginnt, verarbeitet Windows Explorer sie als versteckte Systemdatei. Weitere Informationen unter Warum werden versteckte Dateien mit einer führenden Tilde als super-versteckt behandelt?
Wenn der kurze Datei- / Verzeichnisname '~' enthält (wie "c: \ ololoo ~ 1"), kann der entsprechende lange Name dieser Datei / dieses Verzeichnisses die maximale Länge überschreiten (MAX_PATH = 260). Entwickler sollten dies mit dem Präfix "\\? \" Umgehen (selbst unter neueren Windows 10 kann der Benutzer die Unterstützung von "> 260" -langen Pfaden mit dem
LongPathsEnabled
Registrierungsparameter oder mit der Gruppenrichtlinie "NTFS- Langpfade aktivieren" deaktivieren ). Ein Beispiel für diese Problemumgehung mit C # finden Sie in den Quellen der ZetaLongPaths-Bibliothek .quelle