Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Cursos gratis / Aprenda Linux - Redirecciones y tuberías

Aprenda Linux - Redirecciones y tuberías

 **--- (2 opiniones)
Creative Commons Curso gratis de Javier García de Jalón, Iker Aguinaga y Alberto Mora - 08 de Agosto de 2005
Temas Relacionados: Unix
8. Redirecciones y tuberías
Redirecciones

Los comandos de Linux tienen una entrada estándar (número 0) y dos salidas estándar (número 1 para la salida normal del comando, y número 2 para la salida de los mensajes de error que se puedan producir en su ejecución). Por defecto tanto la entrada como las salidas estándar de los comandos son la propia terminal, a no ser que por la propia naturaleza del comando se den en él los nombres de algunos ficheros que hagan el papel de entrada y de salida. Por ejemplo, en el comando

cp file1 file2

file1 es la entrada y file2 es la salida; aquí no intervienen las entradas y salidas estándar. Sin embargo, cuando utilizamos por ejemplo el comando ls (listado de directorio), la salida de este comando se dirige hacia la terminal. Si queremos que la salida de este comando se dirija a un fichero llamado file, podríamos escribir,

ls >file

el (>) es uno de los llamados operadores de redirección y dirige la salida estándar hacia el fichero indicado a continuación; si este fichero no existe, se crea en ese momento. Otros operadores de redirección son el operador (<) que redirige la entrada estándar desde un determinado fichero, y el operador (>>) que redirige la salida estándar hacia otro fichero, pero añadiendo dicha salida al final de ese fichero, sin sobreescribir el contenido original. Por ejemplo, si cada vez que entramos en el sistema ejecutamos el comando,

date >>archivo tendremos un fichero llamado archivo que contiene información sobre todas las veces que hemos entrado en el sistema. Otro ejemplo, para añadir al fichero file2 al final de file1 y al conjunto llamarle file3, sería

cat file1 file2 >file3 o, si quisiéramos que el fichero resultante fuera el mismo file1,

cat file2 >>file1

Un ejemplo en redirección a la entrada podría ser el siguiente,

mail juan que envía al usuario juan el contenido del fichero carta.

Tuberías

Siguiendo con los ejemplos anteriores, si quisiéramos enviar a juan una lista de nuestros ficheros podríamos utilizar los comandos,

ls >fichero

mail juan

rm fichero

Es decir que hemos conectado la salida estándar de ls con la entrada estándar de mail, a través de un fichero transitorio filelist. Linux permite hacer esta operación directamente, sin pasar por el fichero de almacenamiento transitorio: esto se hace mediante el concepto de tubería (pipe), que consiste en empalmar la salida estándar de un comando con la entrada estándar de otro. Para el ejemplo anterior esto se hace en la forma,

ls | mail juan

Con el operador de tubería (|) se pueden empalmar tantos comandos como se desee.

Bifurcación o T (comando tee)

A veces interesa que la salida de un comando, además de redirigirse a un determinado fichero, se bifurque también hacia la terminal, con objeto de observar inmediatamente el resultado. Esto se consigue con el operador tee, que podría emplearse de la siguiente forma:

ls | tee file

la salida de ls se bifurca hacia la terminal y hacia file.

Si quisiéramos que la salida de este comando se añadiera al final de file, deberíamos utilizar la opción -a,

ls | tee -a file

Redirección de la salida de errores

Los mensajes de error se dirigen a la salida número 2, que normalmente es también la terminal. A veces, por ejemplo cuando se quiere ejecutar un comando en background (ejecutar un comando en background es lanzar su ejecución y recuperar el control de la terminal sin esperar a que termine, lo cual se hace añadiendo el carácter & al final del comando), interesa evitar que los mensajes de error aparezcan en la pantalla, pues en ella habremos empezado a hacer otra cosa.

Supongamos por ejemplo que queremos compilar y montar en background un conjunto de ficheros, dirigiendo los listados a un fichero llamado listados, y los mensajes de error a un fichero llamado errores. Lo haríamos en la forma,

gcc prueba.c 2>errores

con lo cual la salida 2 (errores) se redirige hacia el fichero errores. Para redirigir la salida estándar de errores al mismo fichero que la salida estándar se emplea un comando como:

program resultados.r 2>&1
Autor y licencia de 'Aprenda Linux - Redirecciones y tuberías'
Javier García de Jalón, Iker Aguinaga y Alberto Mora Extraído de: http://www.zonagratuita.com

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Aprenda Linux - Redirecciones y tuberías'

La mayor parte de los ordenadores que existen en la actualidad están diseñados de forma... Más »
En este documento se presenta la información acerca de la instalación, configuración, ejecución y mantenimiento... Más »
Esta es la primerísima edición del Linux en Castellano COMO. La audiencia a la que... Más »
Este documento pretende ser el punto de entrada de los hispanohablantes al mundo Linux, intentando... Más »
Este documento describe el soporte de sonido para Linux. Enumera el hardware de sonido soportado,... Más »
Gente Wiki
Jose Ramon Ramos Silva
Psicólogo. Autor del libro: \"bienestar integral\" cmi: conferencias motivacionales interactivas en convenciones, congresos y eventos magnos. Bip: bienestar integral personalizado. Un...
Estrés, Angustia,...
Adriana
Psicoanalista, especialista en rrhh, proteccionista, voluntaria.
Waldemar Perez Abella
Trabajo como diseñador gráfico - prestoservicios de imprenta y editorial y ademas enseño diseño gráfico con la familia de coreldraw...
Jofre Cantuña
Soy medico pediatra y me interesa los temas de antropologia.
David Torres
Residencia: xalapa, veracruz, méxico licenciado en educación especial en el área de audición y lenguaje maestro en necesidades educativas especiales catedrático de la...
Pedagogía
Abad Alejandro Urbano Cajas
Soy especialista en telecomunicaciones, me interesa las actualizaciones tecnicas.
Suscribirse
¿Estás seguro de que deseas eliminar este capítulo?