GNU/Linux >> Tutoriels Linux >  >> Linux

Que signifie ` (backquote/backtick) dans les commandes ?

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.


Linux
  1. Que signifie "-" (double tiret) ?

  2. Que signifie `chown Root.root $file` ?

  3. Qu'est-ce que . Commande ~/.bashrc Faire ? ?

  4. Que signifie la valeur du symbole de la commande nm ?

  5. Que signifie cet avertissement ?

Que signifie chmod 777

Que signifie la commande Cat sous Linux ?

Que signifie la taille d'un répertoire dans la sortie de la commande "ls -l" ?

Qu'est-ce que cela signifie d'être "compatible sh" ?

Pas de variable DISPLAY X11 - qu'est-ce que cela signifie ?

Que signifie tuer -3 ?