2010-08-15 7 views
35

Ich bin eine Webanwendung Entwicklung noob. Ich habe eine Funktion, die eine Datei öffnet und liest. Leider unterscheiden sich die Verzeichnisstrukturen zwischen Test- und Produktionsserver. Mir wurde gesagt, ich solle "einen Pfad relativ zu ~ benutzen". Ich konnte jedoch keine Ressourcen auf dem '~' finden!Wie verwende ich '~' (Tilde) im Kontext von Pfaden?

Wie kann ich die Tilde im Kontext der Pfade verwenden?

EDIT: Dies ist in Python. Ich habe das Problem mit os.path.expanduser() behoben.

+2

Bitte geben Sie an, auf welcher Art von Web-Entwicklungsplattform Sie sich befinden. Ist es ASP.NET? Schienen? Python? –

+0

Ich kann mir zwei völlig korrekte, aber vollkommen unterschiedliche Antworten vorstellen, je nachdem, was Sie bei Ihrer Webanwendungsentwicklung ** mit ** tun. In der Tat, die völlig unterschiedlichen Antworten, die bisher gegeben wurden, decken diese ab, aber niemand kann sicher sein, was richtig ist, oder wenn es kein drittes ist. Bitte bearbeiten Sie Ihre Frage, um die verwendete Technologie einzuschließen. –

+0

Sie das Problem behoben ~ es wäre schön gewesen, wenn Sie einige Beispiel-Code geschrieben hatte – Mawg

Antwort

33

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

+1

'~' Punkte zu '$ HOME', die ein beliebiges Verzeichnis sein kann (das heißt nicht unbedingt'/home/username'). –

+0

bearbeitet. Danke, dass du das ausgemacht hast. – dierre

14

Sofern Sie ein Shell-Skript oder unter Verwendung eines anderen Sprache schreiben, welcher den Wert von $HOME für ~ zu ersetzen weiß, Tilden in Dateipfaden haben keine besondere Bedeutung und werden wie jedes andere nicht spezielle Zeichen behandelt.

Wenn Sie ein Shell-Skript schreiben, Muscheln interpretieren nicht Tilden, wenn sie nicht als erstes Zeichen in einem Argument auftreten. Mit anderen Worten, ~/file wird /path/to/users/home/directory/file, aber ./~/file wird wörtlich interpretiert (d. H. "Eine Datei mit der Bezeichnung file in einem Unterverzeichnis von ., genannt ~").

In URLs verwendet, ist die Interpretation der Tilde als Kurzform für das Basisverzeichnis eines Benutzers (z. B. http://www.foo.org/~bob) eine Konvention, die von Unix übernommen wurde. Die Implementierung ist vollständig serverspezifisch. Sie müssen daher in der Dokumentation Ihres Webservers nachsehen, ob sie eine besondere Bedeutung hat.