Je suis tombé sur la commande suivante :
sudo chown `id -u` /somedir
et je me demande :quel est le sens du `
symbole. J'ai remarqué par exemple que si la commande ci-dessus fonctionne bien, celle ci-dessous ne fonctionne pas :
sudo chown 'id -u' /somedir
Réponse acceptée :
Il s'agit d'un backtick . Un backtick n'est pas un guillemet. Il a une signification très spéciale. Tout ce que vous tapez entre les backticks est évalué (exécuté) par le shell avant la commande principale (comme chown
dans vos exemples), et la sortie de cette exécution est utilisée par cette commande, comme si vous tapiez cette sortie à cet endroit dans la ligne de commande.
Alors quoi
sudo chown `id -u` /somedir
fonctionne efficacement (en fonction de votre ID utilisateur ) est :
sudo chown 1000 /somedir
`-- the second argument to "chown" (target directory)
`-- your user ID, which is the output of "id -u" command
`-- "chown" command (change ownership of file/directory)
`-- the "run as root" command; everything after this is run with root privileges
Jetez un œil à cette question pour savoir pourquoi, dans de nombreuses situations, ce n'est pas une bonne idée d'utiliser des backticks.
Au fait, si vous avez toujours voulu utiliser un backtick littéralement, par exemple dans une chaîne, vous pouvez l'échapper en plaçant une barre oblique inverse ( ) avant.