Aprenda Linux como en Primero - Poder Judicial de Santa Cruz
Aprenda Linux como en Primero - Poder Judicial de Santa Cruz
Aprenda Linux como en Primero - Poder Judicial de Santa Cruz
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Capítulo 9: REDIRECCIONES Y TUBERÍAS página 57Es <strong>de</strong>cir que hemos conectado la salida estándar <strong>de</strong> ls con la <strong>en</strong>trada estándar <strong>de</strong> mail, a través <strong>de</strong> unfichero transitorio filelist. <strong>Linux</strong> permite hacer esta operación directam<strong>en</strong>te, sin pasar por el fichero<strong>de</strong> almac<strong>en</strong>ami<strong>en</strong>to transitorio: esto se hace mediante el concepto <strong>de</strong> tubería (pipe), que consiste <strong>en</strong>empalmar la salida estándar <strong>de</strong> un comando con la <strong>en</strong>trada estándar <strong>de</strong> otro. Para el ejemplo anterioresto se hace <strong>en</strong> la forma,ls | mail juanCon el operador <strong>de</strong> tubería (|) se pued<strong>en</strong> empalmar tantos comandos <strong>como</strong> se <strong>de</strong>see.9.3 Bifurcación o T (comando tee)A veces interesa que la salida <strong>de</strong> un comando, a<strong>de</strong>más <strong>de</strong> redirigirse a un <strong>de</strong>terminado fichero, sebifurque también hacia la terminal, con objeto <strong>de</strong> observar inmediatam<strong>en</strong>te el resultado. Esto seconsigue con el operador tee, que podría emplearse <strong>de</strong> la sigui<strong>en</strong>te forma:ls | tee filela salida <strong>de</strong> ls se bifurca hacia la terminal y hacia file.Si quisiéramos que la salida <strong>de</strong> este comando se añadiera al final <strong>de</strong> file, <strong>de</strong>beríamos utilizar laopción -a,ls | tee -a file9.4 Redirección <strong>de</strong> la salida <strong>de</strong> erroresLos m<strong>en</strong>sajes <strong>de</strong> error se dirig<strong>en</strong> a la salida número 2, que normalm<strong>en</strong>te es también la terminal. Aveces, por ejemplo cuando se quiere ejecutar un comando <strong>en</strong> background (ejecutar un comando <strong>en</strong>background es lanzar su ejecución y recuperar el control <strong>de</strong> la terminal sin esperar a que termine, locual se hace añadi<strong>en</strong>do el carácter & al final <strong>de</strong>l comando), interesa evitar que los m<strong>en</strong>sajes <strong>de</strong> erroraparezcan <strong>en</strong> la pantalla, pues <strong>en</strong> ella habremos empezado a hacer otra cosa.Supongamos por ejemplo que queremos compilar y montar <strong>en</strong> background un conjunto <strong>de</strong> ficheros,dirigi<strong>en</strong>do los listados a un fichero llamado listados, y los m<strong>en</strong>sajes <strong>de</strong> error a un fichero llamadoerrores. Lo haríamos <strong>en</strong> la forma,gcc prueba.c 2>errorescon lo cual la salida 2 (errores) se redirige hacia el fichero errores. Para redirigir la salida estándar<strong>de</strong> errores al mismo fichero que la salida estándar se emplea un comando <strong>como</strong>:program resultados.r 2>&1