GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué significa ` (comilla invertida/comilla invertida) en los comandos?

Encontré el siguiente comando:

sudo chown `id -u` /somedir

y me pregunto:cuál es el significado del ` símbolo. Noté, por ejemplo, que mientras el comando anterior funciona bien, el siguiente no:

sudo chown 'id -u' /somedir

Respuesta aceptada:

Esto es un comic inverso . Un acento grave no es un signo de comillas. Tiene un significado muy especial. Todo lo que escribe entre acentos graves es evaluado (ejecutado) por el shell antes del comando principal (como chown en sus ejemplos), y la salida de esa ejecución es utilizada por ese comando, como si escribiera esa salida en ese lugar en la línea de comando.

Entonces, qué

sudo chown `id -u` /somedir

se ejecuta efectivamente (dependiendo de su ID de usuario ) es:

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

Eche un vistazo a esta pregunta para saber por qué, en muchas situaciones, no es una buena idea usar acentos graves.

Por cierto, si alguna vez quisiste usar un acento grave literalmente, p. ej. en una cadena, puede escapar colocando una barra invertida ( ) antes.


Linux
  1. ¿Qué significa esta advertencia?

  2. ¿Qué significa rc en archivos de puntos?

  3. ¿Qué significa #define X X?

  4. ¿Qué significa un símbolo de flecha (->) en la línea de comando?

  5. ¿Qué significa matar -3?

¿Qué significa chmod 777?

¿Qué significa el comando Cat en Linux?

¿Qué significa ser "sh compatible"?

No hay variable X11 DISPLAY - ¿qué significa?

¿Qué pasa si [[ $? -ne 0 ]]; significa en .ksh

¿Qué significa la sintaxis |&en lenguaje shell?