Le signe tilde ~
seul, quand il n'est pas entouré de guillemets simples '
ni doubles “
permet de signifier dans une commande shell le répertoire de l'user en cours ou d'un user différent si ce dernier est indiqué.
Le tilde s'utilise en ligne de commande ainsi :
echo ~
/home/user_courant
Et ce, depuis n'importe quel répertoire d'où la commande a été entrée2):
Formuler ainsi, cette commande va permettre de connaître le répertoire personnel attribué au compte de l'utilisateur “autre_user” :
echo ~autre_user
/home/autre_user
Mais, comme le fait remarquer le docteur captnfab dans ce post,
le répertoire /home
n'est pas le répertoire racine utilisé systématiquement pour tous les comptes du système.
Par exemple, pour le compte associé au service ssh
: sshd
echo ~sshd
drwxr-xr-x 2 root root 40 janv. 17 05:33 /var/run/sshd
On l'utilisera couramment par exemple pour lister3) le contenu du répertoire coin coin
dans le dossier personnel de l'utilisateur toto
:
ls ~toto/"coin coin"
Bien sûr, si le répertoire en question n'est pas accessible en lecture 4), cela ne fonctionnera pas
Ou pour se rendre5) dans le dossier personnel de l'utilisateur root en utilisant la commande su ainsi :
su -c 'cd ~root'
A l'issue de laquelle, pour s'exécuter, le mot de passe root vous sera bien évidemment réclamé !