Sustitución de comandos

LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio aprenderá un truco muy útil llamado sustitución de comandos.

Imagine que está redactando un correo electrónico y quiere incluir la fecha de hoy. Solo necesita que el equipo inserte automáticamente la «fecha de hoy».

En Linux se utiliza $(). Esta construcción indica al equipo: «Ejecute primero este comando y coloque el resultado aquí».

Esta es una de las funciones de composición más útiles del shell. En lugar de copiar manualmente la salida de un comando y pegarla en otro, el shell puede realizar esa sustitución automáticamente.

En este laboratorio aprenderá a:

  • Dar formato al comando date.
  • Crear una carpeta cuyo nombre incluya automáticamente la fecha de hoy, por ejemplo, 2025-12-23.

Dar formato a la fecha

Primero, obtenga la fecha en el formato que necesita.

Si ejecuta date sin argumentos, obtendrá una cadena poco adecuada para este propósito.

Esto recuerda que muchos comandos admiten una salida con formato. Las herramientas de Linux suelen permitir elegir entre un formato fácil de leer para las personas y otro adecuado para los programas, según lo que necesite hacer después.

Para crear un nombre de carpeta limpio, como 2025-12-23, use +%F:

date +%F

Salida (ejemplo):

2025-12-23

Crear una carpeta dinámica

Ahora viene el truco.

Quiere crear un directorio usando la fecha, pero sin escribirla manualmente.

Coloque el comando date dentro del comando mkdir mediante $(). El equipo detecta $() y ejecuta primero esa parte.

Ejecute lo siguiente:

mkdir $(date +%F)

Qué ocurrió:

  1. El shell detectó $(date +%F).
  2. Ejecutó date +%F internamente y obtuvo el resultado, por ejemplo, 2025-12-23.
  3. Sustituyó la parte $() por ese resultado.
  4. Ejecutó mkdir 2025-12-23.

Esto muestra que el shell construye el comando final por etapas. La sustitución de comandos ocurre antes de que el comando se ejecute definitivamente; por eso, el resultado puede utilizarse como un argumento normal.

Verificar la carpeta

Compruebe si la operación se realizó correctamente.

Ejecute ls:

ls -l

Debería ver una carpeta nueva cuyo nombre corresponde a la fecha de hoy.

Si ejecuta este script mañana, creará una carpeta nueva con la fecha de mañana. ¡Así funcionan las copias de seguridad automatizadas!

Resumen

En este laboratorio aprendió sobre la sustitución de comandos: usar la salida de un comando como entrada para otro.

  • El truco: $(command)
  • El proceso: Linux ejecuta primero el comando interno y después lo sustituye por el resultado.
  • El resultado: puede crear comandos dinámicos que cambian según la hora, el usuario u otras condiciones, sin escribir los valores manualmente.

Pruebe a ejecutar echo "Today is $(date)" para volver a verlo en acción.