Wie kann ich ‚~‘ (Tilde) im Kontext der Pfade verwenden?
Frage
Ich bin eine Web-Anwendungsentwicklung Noob. Ich habe eine Funktion, die eine Datei und liest sie sich öffnet. Leider unterscheiden sich die Verzeichnisstrukturen zwischen den Test- und Produktionsservern. Mir wurde gesagt, auf „einen Pfad relativ zu ~ benutzen“. Ich habe nicht in der Lage gewesen, alle Ressourcen auf das finden ‚~‘, aber!
Wie verwende ich die Tilde im Zusammenhang mit Pfaden?
EDIT: Dies ist in Python. Ich reparierte das Problem, indem os.path.expanduser ( '~ / path / in / home / Bereich') .
Lösung
es ist, $HOME
var in UNIX, die in der Regel /home/username
ist.
„Ihr Zuhause“ das Haus des Benutzers bedeutet, die einen Befehl wie cd ~/MyDocuments/
ist die Ausführung ist cd /home/user_executing_cd_commnd/MyDocuments
Andere Tipps
Wenn Sie nicht gerade ein Shell-Skript zu schreiben oder eine andere Sprache verwenden, die den Wert von $HOME
für ~
zu ersetzen weiß, Tilden in Dateipfade haben keine besondere Bedeutung und wird wie jede andere nicht-Sonderzeichen behandelt werden.
Wenn Sie einen Shell-Skript schreiben, Muscheln interpretieren nicht Tilden, wenn sie nicht als erstes Zeichen in einem Argumente auftreten. Mit anderen Worten, wird ~/file
werden /path/to/users/home/directory/file
, aber ./~/file
wird buchstäblich interpretiert werden (das heißt, "eine Datei file
in einem Unterverzeichnis von .
genannt ~
genannt").
Wurde in URLs, Interpretation der Tilde als Abkürzung für Home-Verzeichnis des Benutzers (zum Beispiel http://www.foo.org/~bob
) ist eine Konvention von Unix entlehnt. Die Umsetzung ist vollständig serverspezifisch, so dass Sie in der Dokumentation zu Ihrem Web-Server überprüfen, müssen Sie zu sehen, ob es eine besondere Bedeutung hat.
Wenn Sie mit pathlib für Dateinamen, dann können Sie auf Windows und Linux verwenden (Ich kam hier für eine Windows-Antwort):
python
from pathlib import Path
p = Path('~').expanduser()
print(p)