Que signifie le ~
dans un chemin de fichier absolu?
Je le vois dans la sortie de choses comme des scripts de construction mais le chemin n’existe pas.
Normalement, cela signifie que le répertoire personnel de l'utilisateur, par exemple. ~mike/
serait le répertoire personnel de l'utilisateur mike
, ~/
serait votre propre répertoire personnel. Cependant, il n’est pas clair pour moi si ~/
et ~mike/
doivent être considérés comme absolus ou relatifs; 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 des systèmes basés sur Unix.
En fait, les deux réponses d'Adrian Mouat et de studiohack sont vraies.
Dans les systèmes d’exploitation ayant une 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 de base.
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.
Source: Attribution de noms à des fichiers, des chemins et des espaces de noms - Noms courts et longs - MSDN
(En bas de page ...)
Et si vous utilisez la programmation 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
Voici quelques astuces qui peuvent vous aider à mieux comprendre:
$ readlink -f ~
$ echo $HOME
Remarque: $
est une convention qui spécifie l'invite de ligne de commande de l'utilisateur. Elle ne fait pas partie des commandes.