1. redireccionament e/s

stdin, stdout i stderr: Hi ha comandes que accepten les dades d'entrada pel que anomenem entrada estàndard (stdin, amb descriptor de fitxer 0), que és el teclat. També hi ha comandes que ens donen la seva sortida pel que anomenem sortida estàndard (stdout, amb descriptor de fitxer 1), que és la pantalla. Per últim, tots els errors que pugui produir una comanda es dirigeixen a la sortida d'errors (stderr, amb descriptor de fitxer 2)

Redireccionament d'E/S: El redireccionament d'E/S ens permetrà que prenem les dades d'entrada, sortida i error i les redireccionem cap a un altre fitxer diferents als donats per defecte (stdin, stdout, stderr)


REDIRECCIONAMENT E/S

<

redireccionament d'stdin

>

redireccionament d'stdout

si el fitxer no existeix el crea

si el fitxer existeix es carrega el contingut

>>

redireccionament d'stdout

si el fitxer no existeix el crea

si el fitxer existeix afegeix a continuació

2>

redireccionament d'stderr

si el fitxer no existeix el crea

si el fitxer existeix es carrega el contingut

2>>

redireccionament d'stderr

si el fitxer no existeix el crea

si el fitxer existeix afegeix a continuació

1>&2

redireccionar stdout a stderr

2>&1

redireccionar stderr a stdout

>&

redireccionar stdout i stderr a un fitxer

::exemples::
  1. $ mail root -s "hack your mind!" < mailpr mailpr seria un

fitxer amb el

missatge


  1. $ cat fit1 fit2 fit1 existeix,

fit2 no existeix

    això és el contingut del fitxer 1 stdout

    cat: fit2: No existe el fichero o el directorio stderr


    $ cat fit1 fit2 >> copiafit 2>> error.log

afegim fit1 al fitxer copiafit i l'error anirà a error.log


  1. $ cat fit1 fit2 2> fit3 1>&2 (fit1 existeix,

fit2 no existeix)

totes les sortides estan a fit3 perquè els errors van a fit3 i

redirigim stdout a stderr


    $ cat fit1 fit2 > fit3 2>&1 (fit1 existeix,

fit2 no existeix)

totes les sortides estan a fit3 perquè stdout va a fit3 i redirigim

stderr a stdout


  1. $ cat fit1 fit2 >& fit3 (fit1 existeix, fit2 no existeix)

totes les sortides estan a fit3 perquè redirigim stdout i stderr a

fit3

Darrera modificació: dilluns, 1 juliol 2013, 09:14