2010-08-15 14 views
35

Jestem programistą projektowania aplikacji internetowych. Mam funkcję, która otwiera plik i czyta go. Niestety struktury katalogów między serwerem testowym i produkcyjnym różnią się. Powiedziano mi, żeby "używał ścieżki względem ~". Jednak nie udało mi się znaleźć żadnych zasobów na "~"!Jak używać "~" (tyldy) w kontekście ścieżek?

Jak używać znaku tyldy w kontekście ścieżek?

EDYCJA: Jest to w języku Python. Naprawiłem problem, używając os.path.expanduser().

+2

Proszę określić, na jakiej platformie tworzenia stron internetowych jesteś. Czy to ASP.NET? Szyny? Pyton? –

+0

Mogę wymyślić dwie całkowicie poprawne, ale całkowicie różne odpowiedzi na to pytanie, w zależności od tego, co robisz przy tworzeniu aplikacji internetowych ** z **. Rzeczywiście, zupełnie inne odpowiedzi, jak dotąd, obejmują te, ale nikt nie może być pewien, co jest słuszne, lub jeśli nie jest trzecim. Edytuj swoje pytanie, aby uwzględnić zastosowaną technologię. –

+0

Naprawiłeś problem ~ byłoby miło, gdybyś zamieścił przykładowy kod – Mawg

Odpowiedz

33

To jest twój $HOME var w systemie UNIX, który zwykle jest /home/username.

„Twój dom”, czyli w domu użytkownika, który wykonującego polecenia jak cd ~/MyDocuments/ jest cd /home/user_executing_cd_commnd/MyDocuments

+1

'~' wskazuje twój "$ HOME", który może być dowolnym katalogiem (to znaczy niekoniecznie '/ home/username'). –

+0

edytowane. Dzięki za to. – dierre

14

ile piszesz skrypt lub za pomocą jakiegoś innego języka, który zna zastąpić wartość $HOME dla ~, tyldy w ścieżkach plików nie mają specjalnego znaczenia i będą traktowane jak każda inna nietypowa postać.

Jeśli piszesz skrypt powłoki, powłoki nie interpretują tyld, chyba że występują jako pierwszy znak w argumencie. Innymi słowy, ~/file stanie się /path/to/users/home/directory/file, ale ./~/file będzie interpretowane dosłownie (tj. "Plik o nazwie file w podkatalogu . o nazwie ~").

Używane w adresach URL interpretacja tyldy jako skrótu dla katalogu domowego użytkownika (np. http://www.foo.org/~bob) jest konwencją zapożyczoną z Uniksa. Implementacja jest całkowicie zależna od serwera, więc musisz sprawdzić dokumentację swojego serwera WWW, aby sprawdzić, czy ma on jakieś specjalne znaczenie.