Línea de Comandos Parte 2

10.2 - Redirección y Tuberías

El poder de la redirección y tuberías

Las redirecciones y tuberías son el corazón de la potencia de Linux, permitiendo conectar comandos y controlar flujos de datos.

En esta sección aprenderás:

  • Redirigir salida a archivos con > y >>
  • Usar entrada estándar con <
  • Conectar comandos con pipes |
  • Crear flujos de trabajo complejos
Redirección Entrada Pipes Flujos

Flujo de datos

Comando 1 | Comando 2 > Archivo

Los datos fluyen de izquierda a derecha

Redirección de salida: > y >>

La redirección permite enviar la salida de un comando a un archivo en lugar de mostrarla en pantalla.

> - Redirección simple (sobrescribe)

usuario@mint:~$ ls -la > lista_archivos.txt
# Guarda la lista de archivos en lista_archivos.txt

usuario@mint:~$ echo "Mi primer archivo" > mensaje.txt
# Crea mensaje.txt con el texto

usuario@mint:~$ date > fecha_actual.txt
# Guarda la fecha y hora actual en un archivo

usuario@mint:~$ cat mensaje.txt
Mi primer archivo

Comportamiento: > crea un archivo nuevo o sobrescribe completamente uno existente.
Útil para: Crear archivos de log, guardar salidas de comandos, generar reportes.
⚠️ Precaución: Si el archivo existe, se borra su contenido anterior.

>> - Redirección append (añade al final)

usuario@mint:~$ echo "Primera línea" > log.txt
# Crea el archivo con la primera línea

usuario@mint:~$ echo "Segunda línea" >> log.txt
# Añade la segunda línea al final

usuario@mint:~$ date >> log.txt
# Añade la fecha al final del archivo

usuario@mint:~$ cat log.txt
Primera línea
Segunda línea
mié 30 jul 2025 14:30:25 -03

Comportamiento: >> añade contenido al final del archivo sin borrar lo anterior.
Ideal para: Logs continuos, archivos de historial, acumular datos.
✅ Seguro: No borra contenido existente, solo añade al final.

Ejemplos prácticos de redirección

usuario@mint:~$ ps aux > procesos_actuales.txt
# Guarda la lista de procesos en un archivo

usuario@mint:~$ df -h >> reporte_sistema.txt
# Añade información de discos al reporte

usuario@mint:~$ free -h >> reporte_sistema.txt
# Añade información de memoria

usuario@mint:~$ echo "=== Log del $(date) ===" >> actividad.log
# Crea una entrada de log con timestamp

Entrada estándar: <

La redirección de entrada permite que un comando lea datos desde un archivo en lugar del teclado.

< - Redirección de entrada

usuario@mint:~$ echo -e "Línea 1\nLínea 2\nLínea 3" > datos.txt
# Creamos un archivo con datos de ejemplo

usuario@mint:~$ wc -l < datos.txt
3
# Cuenta líneas leyendo desde el archivo

usuario@mint:~$ sort < nombres.txt
# Ordena el contenido del archivo nombres.txt

usuario@mint:~$ mail usuario@ejemplo.com < mensaje.txt
# Envía un email usando el contenido del archivo

Función: < hace que el comando lea datos del archivo especificado.
Equivalencia: wc -l < archivo.txt es similar a cat archivo.txt | wc -l
Uso común: Procesar archivos de datos, configuraciones, scripts automatizados.

Pipes (tuberías): |

Los pipes conectan la salida de un comando con la entrada del siguiente, creando flujos de procesamiento de datos.

Concepto básico del pipe |

usuario@mint:~$ ls -la | head -5
total 48
drwxr-xr-x 5 usuario usuario 4096 jul 30 14:30 .
drwxr-xr-x 3 root root 4096 jul 15 10:00 ..
-rw-r--r-- 1 usuario usuario 220 jul 15 10:00 .bash_logout
-rw-r--r-- 1 usuario usuario 3771 jul 15 10:00 .bashrc
# Lista archivos y muestra solo las primeras 5 líneas

usuario@mint:~$ cat archivo.txt | grep "error"
# Busca la palabra "error" en archivo.txt

usuario@mint:~$ ps aux | wc -l
156
# Cuenta cuántos procesos están ejecutándose

Funcionamiento: El pipe | toma la salida del comando de la izquierda y la pasa como entrada al comando de la derecha.
Ventaja: No se crean archivos temporales, el procesamiento es directo y eficiente.
Filosofía Unix: "Haz una cosa y hazla bien" - combina herramientas simples para tareas complejas.

Ejemplos básicos

usuario@mint:~$ ls | wc -l
# Cuenta archivos del directorio

usuario@mint:~$ cat notas.txt | head -3
# Muestra las primeras 3 líneas

usuario@mint:~$ ls | sort
# Ordena la salida de ls

Práctica guiada

Práctica rápida (3 ejercicios):

Preparación: Abre una terminal y ve a tu carpeta personal con cd ~
1) Redirección básica
  1. date > info.txt (crea/reescribe)
  2. whoami >> info.txt (añade)
  3. cat info.txt (ver resultado)
2) Pipes básicos
  1. ls | wc -l (cuenta archivos)
  2. ls | head -3 (primeros 3)
  3. ls | sort (ordena)
3) Mini flujo útil
  1. echo "manzana\nbanana\nmanzana" > frutas.txt
  2. cat frutas.txt | sort | uniq > frutas_unicas.txt
  3. cat frutas_unicas.txt (ver resultado)
¡Listo! Ya dominas lo esencial de redirecciones y pipes.

¡Listo con lo esencial!

Ya sabes redirigir con >, añadir con >>, usar entrada con < y encadenar con |.

Más adelante veremos filtros como grep, sort y uniq con más detalle.

> >> < |