CodeAventura
Linux
▸Texto y Redirección▸Redirección: >, >> y <

Misión

TerminalTema: Vintage
Redirección: >, >> y <
09
/
17

Redirección: >, >> y <

Los tres flujos de todo comando

Cada comando en Linux tiene tres canales de comunicación:

  • stdin (entrada estándar) — de donde lee datos (normalmente, tu teclado)
  • stdout (salida estándar) — donde escribe resultados (normalmente, la pantalla)
  • stderr (salida de errores) — donde escribe errores (también la pantalla, pero por separado)

La redirección te permite cambiar estos canales. En lugar de que la salida vaya a la pantalla, puedes enviarla a un archivo. En lugar de leer del teclado, puedes leer de un archivo.

> — Escribir en un archivo (sobreescribir)

El operador > redirige la salida de un comando a un archivo:

Esto ejecuta ls pero en vez de mostrar el resultado en pantalla, lo guarda en lista.txt. Si el archivo ya existía, se sobreescribe por completo.

Cualquier comando que normalmente muestra algo en pantalla puede redirigirse a un archivo.

>> — Añadir al final

El doble >> también redirige a un archivo, pero añade al final sin borrar lo que ya había:

Después de esto, archivo.txt tiene tres líneas. Si hubieras usado > en las tres, solo tendría la última.

La diferencia entre > y >> es crucial:

  • > destruye el contenido previo
  • >> conserva el contenido previo y añade al final

< — Leer desde un archivo

El operador < hace lo contrario: le da a un comando un archivo como entrada:

Esto cuenta las líneas de archivo.txt usando wc (word count). Es equivalente a wc -l archivo.txt, pero conceptualmente diferente — le estás diciendo a wc que lea de un archivo en vez del teclado.

2> — Redirigir errores

Los errores van por un canal separado (stderr). Puedes redirigirlos con 2>:

Si /nada no existe, el mensaje de error se guarda en errores.txt en vez de mostrarse en pantalla.

¿Para qué sirve todo esto?

La redirección es fundamental en el trabajo real:

  • Guardar la salida de comandos largos para analizarla después
  • Crear archivos de log
  • Construir archivos línea por línea con echo y >>
  • Silenciar errores que no te interesan

Tu desafío

  1. Guarda la lista de archivos del directorio actual en lista.txt con ls > lista.txt
  2. Añade una línea extra al final con echo "---" >> lista.txt
  3. Muestra el resultado con cat lista.txt

La salida debe mostrar el contenido de lista.txt con la lista de archivos y la línea extra al final.