¿Cómo filtrar mensajes de error de find (o cualquier otro comando) en el terminal?

por 9 Sep 2018Informática0 Comentarios

Filtrar errores Terminal
Compártelo en tus redes sociales. Gracias!

Cuando buscamos algo en a través, por ejemplo, del comando find, nos suelen salir muchos mensajes de error que nos indican que no se ha podido acceder a algunos directorios. Ésto, está bien, aunque en ocasiones pueden dificultar la lectura de la información que estamos buscando.

Una forma de ocultar todos los mensajes de «permission denied» es redirigir los mensajes de error a otra salida diferente al monitor, que es la salida estándar, como por ejemplo a un fichero de texto.

Salida y entrada estándar

Un proceso tiene asociados 3 ficheros de entrada/salida que son los siguientes:

0 -> stdin : Entrada estándar. Indica por dónde se recogen los datos para el proceso que se está ejecutando y por defecto es el teclado a no ser que le indiquemos lo contrario. 


1 -> stdout : Salida Estándar. Indica por donde se muestran los datos (no de error) que arroja el proceso que se está ejecutando y por defecto es la pantalla a no ser que le indiquemos lo contrario.


2 -> sderr : Error estándar. Indica por donde se muestran los errores que arroja el proceso que se está ejecutando y por defecto es la pantalla a no ser que le indiquemos lo contrario.

Ocultar errores en el terminal

Sabiendo lo anterior, será mas fácil entender y recordar como hacer para filtrar los errores que no nos interesa ver por la pantalla.

Lo único que tenemos que hacer es redirigir el stderr a un fichero de la siguiente forma:

sudo find / -name img* 2> errores.txt

Lo que hace el comando anterior será guardar en el fichero «errores.txt» los errores que arroje la búsqueda de todos los archivos que hay en la raíz de nuestro sistema, mientras que los resultados de la búsqueda los mostrará por pantalla, ya que no hemos redirigido el stdout sino que sólo hemos redirigido el stderr. 

Guardar resultados de la búsqueda en un fichero de texto

Si quisieramos redirigir la salida estándar a un fichero, mostrando los errores por pantalla, y los resultados se guardaran en un ficher, el comando sería:

sudo find / -name img* 1> resultados.txt

Lo que hace el comando anterior será guardar en el fichero «resultados.txt» los resultados de la búsqueda de todos los archivos que hay en la raíz de nuestro sistema y que empiecen por img*, mientras que los errores que lance el proceso los mostrará por pantalla, ya que no hemos redirigido el stderr sino que sólo hemos redirigido el stdout.

En este caso también podríamos haber redirigido sin haber puesto el 1 delante del «>» dando el mismo resultado:

sudo find / -name img* > resultados.txt

Guardar resultados en un fichero de texto y los errores en otro fichero diferente

Como último ejemplo, podemos guardar los resultados por un lado y los errores por otro. 

El comando a utilizar sería el siguiente:

sudo find / -name img* > resultados.txt 2> errores.txt

Obviamente, todos estos ejemplos, valen para cualquier comando que queramos, y no solo con find.

Con estos simples ejemplos espero que haya quedado claro como poder filtrar errores de los comandos que ejecutemos en cualquier sistema Linux.

Compártelo en tus redes sociales. Gracias!

Artículos relacionados

<a href="https://dryant.com/author/dryant/" target="_self">dryant</a>

dryant

Webmaster de dryant.com

Informático, Maker, Inversor amateur, mente inquieta... Me encanta programar, esquiar, aprender, crear, bucear y jugar al baloncesto.

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable Pedro Blanch Bejarano.
  • Finalidad  Moderar los comentarios. Responder las consultas.
  • Legitimación Tu consentimiento.
  • Destinatarios  IONOS.
  • Derechos Acceder, rectificar y suprimir los datos.
  • Información Adicional Puedes consultar la información detallada en la Política de Privacidad.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para fines de afiliación y para mostrarte publicidad relacionada con tus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver Política de cookies
Privacidad