Normalement, cela signifie que le répertoire de base de l'utilisateur, par exemple, ~mike/serait le répertoire de base de l'utilisateur mike, ~/serait votre propre répertoire de base. Cependant, il m'est difficile de savoir si ~/et ~mike/doit être considéré comme absolu ou relatif; cela semble dépendre de la définition donnée (si quelqu'un peut trouver une référence faisant autorité, merci de poster un commentaire).
Notez que je parle ici de systèmes basés sur Unix.
Ils sont absolus, car ils sont synonymes de chemins absolus: sous UNIX, le chemin absolu peut être déduit du contenu du /etc/loginfichier. L’expansion est traditionnellement effectuée par le shell, mais tout langage ayant des prétentions de "script" le fera aussi.
Charles Stewart
2
+1: Je n'étais pas au courant ~username/.
Wuffers
2
Il est intéressant de noter que Windows PowerShell accepte également ~le synonyme du répertoire de l'utilisateur à la maison.
Joey
1
Jeffery Snover a déclaré que PowerShell était basé à l'origine sur les VIM / EMAC
Type anonyme
1
@ Charles Stewart sans doute au moins ~ / est relatif car il dépend du contexte de l'utilisateur. De plus, certaines références définissent un chemin absolu comme étant donné par la racine du système de fichiers, ce qui n’est évidemment pas le cas. Si vous avez une référence pour votre déclaration, partagez-la!
Adrian Mouat
21
En fait, les deux réponses d'Adrian Mouat et de studiohack sont vraies.
Dans les systèmes d'exploitation avec convention de dénomination limitée (ancienne version de Windows / DOS, etc.), cela signifie un nom long.
e.g. "c:\program files\" is equivalent to "c:\progra~1\"
Dans certains systèmes d'exploitation (notamment Unix), cela signifie répertoire-répertoire (et peut être considéré comme un chemin absolu mais non canonique). e.g."/a/vol01/usr/mike/" might be shortened to "~/mike/"
* où 'usr' est le répertoire d'accueil.
Dans le contexte des scripts de construction, il s'agit probablement de la version centrée sur Unix.
Charles Stewart
2
Les chemins Unix utilisent généralement des barres obliques plutôt que des barres obliques inverses.
Torben Gundtofte-Bruun Le
@torbengb, true ... opps
Eran
1
Une petite correction à la réponse par ailleurs excellente de Xenorose. Les noms de fichier tels que "progra ~ 1" ne sont pas destinés aux anciens systèmes d'exploitation. Mon système Windows 7 les utilise toujours. (Faites dir / x pour voir.) Il s'agit d'une fonctionnalité héritée qui prend en charge les anciens logiciels qui ne connaissent pas les noms de fichiers longs dans les systèmes modernes. L'ancien logiciel pensait que tous les noms de fichiers respectaient la convention 8.3 . Lorsqu'un nom de fichier ne fonctionne pas avec cette convention, le système de fichiers crée automatiquement un deuxième nom, compatible 8.3.
Isaac Rabinovitch
12
Sur de nombreux systèmes de fichiers, un nom de fichier contient un tilde (~) dans chaque composant du nom trop long pour être conforme aux règles de dénomination 8.3.
Hmm, ne fonctionne pas vraiment pour les noms qui contiennent des points. (par exemple 192.168.1.1ou somefile.namewithdot)
Pacerier
5
Et si vous programmez avec ASP.NET, cela signifie le niveau supérieur du site Web; plutôt que de naviguer avec ../../images/some_image.jpg (et d'obtenir un niveau de nidification erroné!), vous pouvez simplement dire ~ / images / some_image.jpg
/images/some_image.jpgdevrait vous emmener à la racine de tout site Web. Quelles fonctionnalités supplémentaires le tilde fournit-il dans ASP.NET?
Sonny
7
~ vous amène à la racine de l'application Web qui n'est pas la même que la racine du site Web si vous utilisez un répertoire virtuel. Par exemple, si votre site Web est installé sur myserver dans le répertoire virtuel myapp, ~ / images / myimage.jpg sera résolu en myserver / myapp / images / myimage.jpg . Voir msdn.microsoft.com/en-us/library/ms178116.aspx .
MCS
1
Voici quelques astuces qui peuvent vous aider à mieux comprendre:
$ readlink -f ~
$ echo $HOME
Remarque: $est une convention pour spécifier l'invite de ligne de commande de l'utilisateur, cela ne fait pas partie des commandes.
Si le nom de fichier / répertoire court contient '~' (comme "c: \ ololoo ~ 1"), il est possible que le nom long correspondant de ce fichier / répertoire dépasse la longueur maximale (MAX_PATH = 260). Les développeurs doivent contourner ce problème avec le préfixe "\\? \" (Même sous Windows 10 le plus récent en tant qu'utilisateur pouvant désactiver la prise en charge des chemins "> 260" avec le LongPathsEnabledparamètre de registre ou avec la stratégie de groupe "Activer les chemins longs NTFS"). Vous pouvez trouver un exemple de cette solution de contournement à l'aide de C # dans les sources de la bibliothèque ZetaLongPaths .
Réponses:
Normalement, cela signifie que le répertoire de base de l'utilisateur, par exemple,
~mike/
serait le répertoire de base de l'utilisateurmike
,~/
serait votre propre répertoire de base. Cependant, il m'est difficile de savoir si~/
et~mike/
doit être considéré comme absolu ou relatif; cela semble dépendre de la définition donnée (si quelqu'un peut trouver une référence faisant autorité, merci de poster un commentaire).Notez que je parle ici de systèmes basés sur Unix.
Voir http://en.wikipedia.org/wiki/Home_directory#Unix
la source
/etc/login
fichier. L’expansion est traditionnellement effectuée par le shell, mais tout langage ayant des prétentions de "script" le fera aussi.~username/
.~
le synonyme du répertoire de l'utilisateur à la maison.En fait, les deux réponses d'Adrian Mouat et de studiohack sont vraies.
Dans les systèmes d'exploitation avec convention de dénomination limitée (ancienne version de Windows / DOS, etc.), cela signifie un nom long.
Dans certains systèmes d'exploitation (notamment Unix), cela signifie répertoire-répertoire (et peut être considéré comme un chemin absolu mais non canonique).
e.g."/a/vol01/usr/mike/" might be shortened to "~/mike/"
* où 'usr' est le répertoire d'accueil.
la source
Source: noms de fichiers, chemins d'accès et espaces de noms - Noms abrégés et noms longs - MSDN
(En bas de page ...)
la source
192.168.1.1
ousomefile.namewithdot
)Et si vous programmez avec ASP.NET, cela signifie le niveau supérieur du site Web; plutôt que de naviguer avec ../../images/some_image.jpg (et d'obtenir un niveau de nidification erroné!), vous pouvez simplement dire ~ / images / some_image.jpg
la source
/images/some_image.jpg
devrait vous emmener à la racine de tout site Web. Quelles fonctionnalités supplémentaires le tilde fournit-il dans ASP.NET?Voici quelques astuces qui peuvent vous aider à mieux comprendre:
Remarque:
$
est une convention pour spécifier l'invite de ligne de commande de l'utilisateur, cela ne fait pas partie des commandes.la source
En savoir plus sur Windows:
Si le nom de fichier caché commence par «~», l'explorateur Windows le traite comme un fichier caché du système. Plus d'informations dans Pourquoi les fichiers cachés avec un tilde de premier plan sont-ils traités comme étant super cachés?
Si le nom de fichier / répertoire court contient '~' (comme "c: \ ololoo ~ 1"), il est possible que le nom long correspondant de ce fichier / répertoire dépasse la longueur maximale (MAX_PATH = 260). Les développeurs doivent contourner ce problème avec le préfixe "\\? \" (Même sous Windows 10 le plus récent en tant qu'utilisateur pouvant désactiver la prise en charge des chemins "> 260" avec le
LongPathsEnabled
paramètre de registre ou avec la stratégie de groupe "Activer les chemins longs NTFS"). Vous pouvez trouver un exemple de cette solution de contournement à l'aide de C # dans les sources de la bibliothèque ZetaLongPaths .la source