13.07.2015 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!