Redireccionar E/S de comandes sistema

9 Desembre 2012 § Deixa un comentari

Redirecció en Linux

Fluxos de Dades Estàndard que podem redireccionar:

  • Entrada:              0
  • Sortida:                1
  • Error:                   2

 Sintàxies:

#cmd >nom_arxiu ("cmd" representa un comando, com grep, find, ...)

Redireccionar Sortida Estàndard a l’ arxiu o dispositiu. Si l’arxiu no existeix el crea i si existeix el sobreescriu perdent el contingut en curs.

#cmd >>nom_arxiu ("cmd" representa un comando, com grep, find, ...)

Redireccionar Sortida Estàndard a l’arxiu o dispositiu. Si l’arxiu no existeix el crea i si existeix afegeix al final de les dades existents.

#cmd 2>nom_arxiu

Redireccionar Error Estàndard a l’arxiu o dispositiu. Si l’arxiu no existeix el crea i si existeix el sobreescriu perdent el contingut en curs.

#cmd 2>>nom_arxiu

Redireccionar Error Estàndard a l’arxiu o dispositiu. Si l’arxiu no existeix el crea i si existeix afegeix al final de les dades existents.

#cmd 2>&1

Redireccionar Error Estàndard a Sortida Estàndard.

#cmd >&nom_arxiu

Redireccionar Error Estàndard i Sortida Estàndard a l’arxiu o dispositiu. Si l’arxiu no existeix el crea i si existeix el sobreescriu perdent el contingut en curs.

#cmd <nom_arxiu

Redireccionar Entrada Estàndard des de l’arxiu o dispositiu a cmd (command) (per defecte, la Entrada Estàndard és el teclat).

Exemples

1.- Buscar el text “Completed” en tots els arxius del directori en curs redirigint la Sortida i Error Estàndards a respectius arxius:

#grep –i Completed * 1>Sortida.log 2>Error.log

No mostra resultats en pantalla, podem veure els resultats fent: “cat Sortida.log” y “cat Error.log”

2.- Buscar el text “Completed” en tots els arxius del directori en curs redirigint la Sortida i Error Estàndards a l’arxiu SortidaError.log:

#grep –i Completed * >SortidaError.log 2>&1

No mostra resultats en pantalla, podem veure els resultats fent: “cat SortidaError.log”

Redirigir a un arxiu i mostrar a la pantalla a la vegada

En Linux tenim la comanda tee:  llegeix des de la Entrada Estàndard, escriu en la Sortida Estàndard i en els arxius indicats

#tee nom_axiu

llegeix Entrada i escriu en nom_arxiu i sobreescriu si existeix.

#tee –a nom_arxiu

Amb “-a” llegeix Entrada i escriu en nom_arxiu i afegeix al final si existeix.

Exemples

1.- Buscar el text “Completed” en tots els arxius del directori en curs redirigint la Sortida i Error Estàndards a l’arxiu SortidaError.log i al mateix temps veure la mateixa informació en pantalla:

#grep –i Completed * 2>&1 | tee –a SortidaError.log

2.- Buscar el text “Completed” en tots els arxius del directori en curs redirigint la Sortida i Error Estàndards a respectius arxius Sortida.log i Error.log veient al mateix temps la informació en pantalla:

#(grep –i Completed * | tee Sortida.log) 3>&1 1>&2 2>&3 | tee Error.log

Docum. darrer ex. “Linux Server Hacks” de Rob Flickenger – O’Reilly (veure: “n>m : Swap STDOUT and STDERR”).

Where Am I?

You are currently viewing the archives for Desembre, 2012 at Felip Sanchez.