Operadores para Concatenar Comandos en Linux
Operadores para Concatenar Comandos en Linux

10 Útiles Operadores para Concatenar Comandos en Linux

Si usas Linux, probablemente ya sabes lo útil que es la línea de comandos para gestionar archivos, instalar software y ejecutar programas. Pero este recurso puede ser aún más eficiente si quieres ejecutar varios comandos al mismo tiempo. La combinación de dos o más comandos se conoce como “concatenación de comandos“.

Consulta en el siguiente tutorial 10 formas de combinar los comandos.

1. Operador punto y coma (;)

El operador punto y coma (;) permite ejecutar varios comandos seguidos. Para entenderlo mejor, abre una ventana de terminal (en Ubuntu y GNU/Linux Mint, pulsa Ctrl + Alt + T). A continuación, escribe los siguientes tres comandos en una línea, separándolos con punto y coma, y pulsa Intro.

ls ; pwd ; whoami
Concatenar con punto y coma en Linux
Concatenar con punto y coma en Linux

Esta secuencia listará el contenido del directorio actual (ls), mostrará el directorio actual en el que te encuentras (pwd) y mostrará tu nombre de usuario (whoami), todo ello con nuestra combinación de comandos. En esta combinación, no es necesario poner espacios entre los ‘puntos y comas’ y los comandos, ya que podrías introducir los tres comandos conjuntos: ls;pwd;whoami.

2. Operador Ampersand (&)

La función ‘&‘ – hará que el comando se ejecute en segundo plano. Basta con introducir un comando con un espacio y un ‘&’. Puedes ejecutar más de un comando en segundo plano a la vez.

Para ejecutar un solo comando en segundo plano, podemos utilizar el operador “&”. Pero para ejecutar varios comandos en segundo plano, podemos utilizar una de las dos formas siguientes

  • Usar “&” junto con “&&”
  • Usar “&” junto con el grupo de comandos

Así que vamos a ejecutar un archivo bash (que muestra “hola esgeeks“) en segundo plano usando el operador “&” y registramos la salida del comando en un archivo de registro:

date; ./hola.sh; date & > hola_backup.log

El uso de “&” con “;” sólo ejecutará el comando date final en segundo plano. Pero el primer comando date y el script de shell se ejecutan en primer plano. En su lugar, para ejecutar todos los comandos en segundo plano condicionalmente, hagamos;

date && ./hola.sh && date & > hola_backup.log

Otro ejemplo: Ejecutar dos comandos en segundo plano simultáneamente:

apt-get update & apt-get upgrade &

3. Operador lógico AND (&&)

Si necesitas que el segundo comando se ejecute después del primero, sepáralos con el operador lógico AND, representado por un doble y comercial (&&). Por ejemplo, si quieres crear un directorio llamado “MiCarpeta” y luego entrar en él, escribe la siguiente secuencia y pulsa Intro:

mkdir MiCarpeta && cd MiCarpeta
Concatenar con operador AND en Linux
Concatenar con operador AND en Linux

Observa que cuando se ejecuta la secuencia, el directorio se crea con éxito. Con este resultado, observamos que, en la mayoría de los casos, es más seguro utilizar el operador lógico AND (doble et), en lugar del operador de punto y coma (;), ya que esto garantiza que no se hará nada desastroso.

4. Operador Lógico OR (||)

Si necesitas ejecutar un segundo comando, sólo si el primero no tiene éxito, utiliza el operador lógico OR, que se representa con dos barras verticales (||). Por ejemplo: si quieres verificar que un directorio ( [ -d ~/micarpeta] ) existe y no lo hace, sólo tienes que crearlo con el comando mkdir ~/micarpeta.

A continuación, escribe el siguiente comando en el terminal de GNU/Linux y pulsa Intro:

[ -d ~/micarpeta ] || mkdir ~/micarpeta
Concatenar comandos con operador OR en Linux
Concatenar comandos con operador OR en Linux

En el ejemplo, para que todo funcione correctamente, comprueba que hay un espacio después del primer corchete y otro delante del segundo. Si no es así, el primer comando que comprueba si el directorio existe no funcionará. Si has escrito correctamente, y el directorio “micarpeta” no existe, el segundo comando lo creará.

5. Operador NOT (!) en Linux

El operador NOT (!) es muy similar al operador “except” (en SQL). Este comando ejecutará todo excepto la condición dada. Para entender cómo funciona, crea una carpeta “esgeeks” en tu directorio personal y navega hasta ella utilizando el comando “cd“.

mkdir blog
cd blog

A continuación, crea varios tipos de archivos en la carpeta “esgeeks“.

touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html

Verás, hemos creado todos los archivos nuevos en la carpeta “esgeeks”.

ls

Ahora elimina todos los archivos excepto los archivos “html” al mismo tiempo, de forma inteligente.

rm -r !(*.html)
Concatenar comandos con operador NOT en Linux
Concatenar comandos con operador NOT en Linux

Sólo para comprobar, la última ejecución. Lista todos los archivos disponibles con el comando ls.

ls

6. Operador PIPE (|)

Esta sentencia de flujo PIPE es muy útil cuando la salida del primer comando actúa como entrada del segundo comando. No hay límite en el número de comandos que se pueden concatenar.

Nota

Por lo tanto, es posible crear una cadena de concatenaciones compuesta por tres, cuatro, cinco comandos, y así sucesivamente.

Un ejemplo práctico: Para concatenar dos comandos, escribo:

grep esgeeks miarchivo.txt | more
Concatenar comandos con operador pipe en Linux
Concatenar comandos con operador pipe en Linux

El primer comando (grep) encuentra las líneas en las que está presente la cadena “esgeeks” en el archivo miarchivo.txt. En lugar de imprimirlos en la pantalla, el comando envía la salida al segundo comando (more), que se encarga de paginar la visualización en la pantalla.

Otro ejemplo: Para ordenar el contenido de un archivo de texto, basta con redirigir la salida del comando CAT al comando SORT

cat miarchivo.txt | sort

La salida del comando cat entra como entrada al segundo comando sort que ordena y muestra el contenido textual.

Nota

El comando sort no cambia el contenido del archivo porque ordena la visualización. Por lo tanto, el contenido original del archivo no cambia. Sólo se ordena la visualización en la pantalla.

7. Operador de Llaves {}

El operador de llaves es útil para combinar dos o más comandos, donde el segundo comando depende de la ejecución del primer comando.

Por ejemplo, comprueba si el directorio “esgeeks” está disponible e imprime la salida correspondiente.

[ -d "esgeeks" ] || { echo El directorio no existe, creando el directorio ahora.; mkdir esgeeks; } && echo El directorio existe.
Concatenar comandos con operador llaves en Linux
Concatenar comandos con operador llaves en Linux

8. Operador de Paréntesis () en Linux

Entre todos los comandos de Linux, este operador permite ejecutar un comando específico por orden de prioridad.

Supongamos los siguientes pseudocomandos:

Comando1 && Comando2 || Comando3 && Comando4

En el pseudocomando anterior, ¿qué pasa si el Comando1 falla? Ninguno de los Comando2, Comando3, Comando4 será ejecutado, para ello utilizamos el operador de prioridad así:

(Comando1 && Comando2) || (Comando3 && Comando4)

En el script anterior, si el Comando1 termina con un error, el Comando2 también termina con un error, pero aún así la ejecución del Comando3 y del Comando4 depende del estado de salida del Comando3.

9. Operador Barra Inversa Invertida (\)

La barra invertida () es un carácter de escape que indica al shell que no interprete el siguiente carácter. Si el siguiente carácter es una nueva línea, el shell leerá la sentencia como si no hubiera llegado al final. Esto permite que una sentencia abarque varias líneas.

Esta es una técnica útil que divide los comandos largos en declaraciones legibles contenidas en la ventana de la sesión del shell.

Las barras invertidas también dividen las sentencias de los comandos en partes comprensibles. Por lo tanto, pueden ser útiles para dividir un comando complejo en sus operaciones individuales. La barra invertida nos permite incluso ejecutar varios comandos en varias líneas desde un solo prompt.

Veamos un ejemplo de uso de barras invertidas para segmentar un comando complejo y largo:

$ find /etc -exec grep\
>'[0-9][0-9]*[.][0-9][0-9] \
> *[.][0-9][0-9]*[0-9][0-9]*' {} \;

Otro ejemplo de uso. Para evitar el error sintáctico de un archivo.

nano test(1).txt
bash: error sintáctico cerca del elemento inesperado `('

El siguiente comando abrirá el archivo de texto test(1).txt.

nano test\(1\).txt

10. Combinación de Varios Operadores

También puedes combinar varios operadores en la misma secuencia. Por ejemplo, para comprobar si un archivo existe ( [ -f ~/foo.txt ] ). Si esto ocurre, el sistema mostrará un mensaje en la pantalla confirmando que el archivo existe ( echo "El archivo existe" ). Si el archivo no existe, un comando creará el archivo ( touch ~/foo.txt ).

Escribe el comando en el terminal y pulsa Intro:

[ -f ~/esgeeks.txt ] && echo "El archivo existe" || touch ~/esgeeks.txt
Combinar operadores de concatenación en Linux
Combinar operadores de concatenación en Linux

Después de estos ejemplos, imaginemos las posibilidades y cómo pueden ayudarnos.

Y por último, todos estos métodos de combinación se pueden utilizar dentro de scripts en GNU/Linux (y ahora también en Windows 10/11).

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda