1.8 – Cómo usar echo, >, tee

Este comando:

echo "Ruta secreta al sector Omega" | sudo tee /srv/andromeda/pilotos/ruta_estelar.txt

sirve para escribir un texto dentro de un archivo con permisos de administrador.

Explicación por partes

1. echo "Ruta secreta al sector Omega"

El comando echo muestra un texto por pantalla.

En este caso, genera esta salida:

Ruta secreta al sector Omega

2. |

La barra vertical se llama pipe.

Sirve para enviar la salida de un comando al siguiente.

Aquí lo que hace es mandar el texto generado por echo al comando tee.


3. sudo tee /srv/andromeda/pilotos/ruta_estelar.txt

El comando tee recoge lo que le llega por la entrada estándar y lo:

  • muestra por pantalla,
  • y además lo guarda en un archivo.

Como va precedido de sudo, tee se ejecuta con permisos de administrador, por lo que puede escribir en una ruta protegida.

En este caso, escribe el texto en:

/srv/andromeda/pilotos/ruta_estelar.txt

Qué hace en conjunto

El comando completo:

  1. genera el texto "Ruta secreta al sector Omega",
  2. lo envía a tee,
  3. tee lo escribe dentro del archivo indicado,
  4. y además lo muestra en pantalla.

Resultado

El archivo ruta_estelar.txt quedará con este contenido:

Ruta secreta al sector Omega

¿Por qué no usar directamente >?

Podrías pensar en hacer:

sudo echo "Ruta secreta al sector Omega" > /srv/andromeda/pilotos/ruta_estelar.txt

Pero eso no funciona como se espera en muchos casos.

La razón es que:

  • sudo se aplica a echo,
  • pero la redirección > la intenta hacer el usuario actual,
  • y ese usuario quizá no tiene permisos para escribir en esa carpeta.

Por eso tee es muy útil: porque quien escribe realmente en el archivo es tee, y como lleva sudo, sí tiene permisos.


Diferencia entre crear y añadir contenido

Sobrescribir el archivo

echo "Texto nuevo" | sudo tee archivo.txt

Esto reemplaza el contenido anterior.

Añadir al final del archivo

echo "Otra línea" | sudo tee -a archivo.txt

La opción -a significa append, es decir, añadir al final sin borrar lo que ya había.


Ejemplo

Crear el archivo con una línea

echo "Primera línea" | sudo tee /tmp/prueba.txt

Añadir otra línea

echo "Segunda línea" | sudo tee -a /tmp/prueba.txt

Ver el contenido

cat /tmp/prueba.txt

Salida:

Primera línea
Segunda línea

Resumen

ParteFunción
echo "texto"genera un texto
``
tee archivomuestra el texto y lo guarda en un archivo
sudo tee archivoguarda el texto en un archivo con permisos de administrador