Skip to content
On this page

Redirecci贸n

stdout hacia archivo

La redirecci贸n de entrada y salida permite redefinir hacia donde ir谩 a parar la salida de un programa o comando. Para redirigir la salida hacia un archivo en lugar de a la pantalla es posible utilizar el operador de redirecci贸n > seguido del nombre del archivo.

Esto puede ser 煤til cuando se quiere dejar registro de la salida de una ejecuci贸n para su posterior an谩lisis.

EJ:

ls -l /usr/bin > ls-output.txt

En caso de producirse un error en este caso la salida ser铆a a la pantalla ya que la redirecci贸n anterior es a la salida est谩ndar y en ese caso se estar铆a recibiendo el mensaje hacia a la salida de error est谩ndar.

EJ con directorio que no existe:

ls -l /bin/usr > ls-output.txt

驴y que sucede con nuestro archivo?, originalmente se hab铆a completado con el contenido del directorio /usr/bin. Al fallar la ejecuci贸n la salida est谩ndar del comando fue vacia y eso trunc贸 nuestro archivo.

Para evitar esto deber铆amos utilizar el operador >>, el cual realiza un append en lugar de sustituci贸n.

stderr hacia archivo

En algunos casos en conveniente tambi茅n capturar la salida en caso de error.

Una forma es redirigir la salida de error a la salida est谩ndar:

ls -l /bin/usr > ls-output.txt 2>&1

Se redirige stdout al archivo y luego el archivo descriptor 2 stderr al archivo descriptor 1 stdout.

>ls-output.txt 2>&1

El orden de redirecci贸n importa, ya que si se invierte, los errores se desplegar谩n en pantalla.

2>&1 >ls-output.txt

En versiones m谩s recientes la notaci贸n utilizada es m谩s sencilla:

ls -l /bin/usr &> ls-output.txt

Silencio

En algunas ocaciones se requiere no obtener ning煤n tipo de salida, para este prop贸sito existe un archivo especial /dev/null tambi茅n conocido como bit bucket, el cual acepta entrada y no hace nada con ella.

ls -l /bin/usr 2> /dev/null

Redirig铆r Standar input

El comando cat es utilizado para leer uno o m谩s archivos y copiarlos hacia la entrada est谩ndar.

`cat [file...]

Suele ser utilizado para desplegar un archivo de forma r谩pida y sin paginado, pero su funci贸n m谩s interesante es al momento de unir archivos.

En algunos casos archivos extensos son descargados en partes, mediante el comando cat estos pueden ser reensamblados:

EJ: movie.mpeg.001, movie.mpeg.002, movie.mpeg.003...

cat movie.mpeg.0* > movie.mpeg

La expansi贸n de las wildcards siempre es ordenada, por lo que los archivos se unir谩n en el orden correcto.

Algo similar a lo que hicimos con las tareas:

cat tareas/*.md > tareas.md

cat puede ser utilizado como un sencillo bloc de notas si no se le pasan argumentos, quedar谩 recibiendo desde la entrada estandar (el teclado), hasta que reciba el valor EOF osea Ctrl-d.

EJ:

cat

cat > mi-simple-notepad.txt

As铆 mismo es posible utilizar un archivo como standar input:

cat < mi-simple-notepad.txt

Enlaces

wikipedia | /dev/null