Redireccionamiento


Unix permite redireccionar la salida estándar a un archivo, es decir al ejecutar un comando en lugar de desplegarlo en la pantalla, se guarda todo en un archivo.

Algunas de las formas que existen son las siguientes:

	>		Envía la salida a un archivo
	>>		Anexa la salida a un archivo
	>&		Envía salida y errores a un archivo
	>>&		Anexa salida y errores a un archivo
	cmd1 | cmd2	La salida de cmd1 se usa como argumento de cmd2
	< archivo	Toma de "archivo" los argumentos
Ejemplos:
Veamos que archivos existen en el directorio "curso/linux"
moises@tonatiuh% cd curso

moises@tonatiuh% ls linux linuz/ netscape


Guardemos el resultado del comando "ls" en el archivo "folder" y veamos su contenido
moises@tonatiuh% ls linux > folder

moises@tonatiuh% cat folder linuz/ netscape


Anexemos al archivo más información:
moises@tonatiuh% ls msdos
arbol.rtf   carta.ws    otro/

moises@tonatiuh% ls msdos >> folder

moises@tonatiuh% cat folder linuz/ netscape arbol.rtf carta.ws otro/


Y para redireccionar los errores de ejecución a un archivo se hace:
moises@tonatiuh% cat dos tres >& err

moises@tonatiuh% cat err cat: cannot open dos cat: cannot open tres


Si un comando requiere argumentos de entrada, estos se pueden poner en un archivo y si se desea que los resultados del comando se envíen a un archivo, la forma de indicarlo al sistema seria:
prog < entrada > salida

Un último ejemplo, si tenemos tres archivos de un tercio de página y deseamos imprimirlos en una sola hoja podríamos realizar lo siguiente:
cat arch1 arch2 arch3 > tmp; lp tmp; rm tmp

Por que si hacemos
lp arch1 arch2 arch3
los imprimiría en hojas separadas.
Para realizar nuestro objetivo usamos el llamado pipe "|", que permite pasar la salida de un comando a la entrada de otro. Y seria así:
cat arch1 arch2 arch3 | lp