2010-08-15 18 views
35

Je suis un développeur d'applications web. J'ai une fonction qui ouvre un fichier et le lit. Malheureusement, les structures de répertoires entre les serveurs de test et de production diffèrent. On m'a dit d'utiliser un chemin relatif à ~ ". Je n'ai pas pu trouver de ressources sur le '~', cependant!Comment utiliser '~' (tilde) dans le contexte des chemins?

Comment utiliser le caractère tilde dans le contexte des chemins?

EDIT: Ceci est en Python. J'ai corrigé le problème en utilisant os.path.expanduser().

+2

Veuillez spécifier le type de plate-forme de développement Web sur lequel vous vous trouvez. Est-ce ASP.NET? Des rails? Python? –

+0

Je peux penser à deux réponses parfaitement correctes mais complètement différentes à cela, en fonction de ce que vous faites de votre développement d'applications web ** avec **. En effet, les réponses complètement différentes données jusqu'ici couvrent ceux, mais personne ne peut être sûr de ce qui est juste, ou si ce n'est pas un troisième. Veuillez modifier votre question pour inclure la technologie utilisée. –

+0

Vous avez corrigé le problème ~ cela aurait été bien si vous aviez posté un exemple de code – Mawg

Répondre

33

c'est votre $HOME var sous UNIX, qui est habituellement /home/username.

« Votre maison » signifie la maison de l'utilisateur qui l'exécution d'une commande comme cd ~/MyDocuments/ est cd /home/user_executing_cd_commnd/MyDocuments

+1

'~' points à votre '$ HOME', qui peut être n'importe quel répertoire (pas nécessairement'/home/username'). –

+0

modifié. Merci d'avoir signalé cela. – dierre

14

Sauf si vous écrivez un script shell ou en utilisant une autre langue qui sait remplacer la valeur de $HOME pour ~, Les tildes dans les chemins de fichiers n'ont pas de signification particulière et seront traités comme n'importe quel caractère non spécial.

Si vous écrivez un script shell, les shells n'interprètent pas les tildes à moins qu'ils n'apparaissent en tant que premier caractère dans un argument. En d'autres termes, ~/file deviendra /path/to/users/home/directory/file, mais ./~/file sera interprété littéralement (c'est-à-dire, "un fichier appelé file dans un sous-répertoire de . appelé ~").

Utilisée dans les URL, l'interprétation du tilde comme raccourci pour le répertoire de base d'un utilisateur (par exemple, http://www.foo.org/~bob) est une convention empruntée à Unix. La mise en œuvre est entièrement spécifique au serveur, vous devez donc vérifier la documentation de votre serveur Web pour voir si elle a une signification particulière.

Questions connexes