>, >> y <Cada comando en Linux tiene tres canales de comunicación:
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 finalEl 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 archivoEl 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 erroresLos 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.
La redirección es fundamental en el trabajo real:
echo y >>lista.txt con ls > lista.txtecho "---" >> lista.txtcat lista.txtLa salida debe mostrar el contenido de lista.txt con la lista de archivos y la línea extra al final.