Cómo usar el comando tee en Linux

Si alguna vez usó canalización y redirección a través de shell على Linux A veces, también necesitará usar el comando tee para obtener ayuda.

Cómo usar el comando tee en Linux

¿Qué hace tee?

ordenar como

ls

mostrará El contenido del directorio actual. En otras palabras, es mostrar este contenido En stdout (salida estándar), que suele estar en su pantalla, o para ser más precisos, su monitor predeterminado.

ordenar como

ls > file123

No se mostrará nada en la pantalla. Eso es porque la señal > Redirige toda la salida a un archivo en lugar de servirla a stdout. ahora se llenará file123 contenido previamente mostrado en la pantalla.

Para mostrar el contenido de su directorio en la pantalla y escribir en este archivo, puede usa dos cosas. Con tee puedes hacer ambas cosas simultáneamente.

ls | tee file123

¿Por qué usar Tee si puede ejecutar un comando similar dos veces?

En el ejemplo anterior, obviamente no es necesario tee Si puede ejecutar el comando normalmente, ejecútelo nuevamente y redirija la salida a algún archivo. Sin embargo, encontrará situaciones en las que la salida es solitaria. Imagine un escenario en el que está tratando de diagnosticar el problema. Puede ejecutar un diagnóstico | tee error registro. Los errores que obtenga pueden ser únicos. Desea mostrarlo en la pantalla para que pueda ver lo que sucede a medida que prueba las cosas. Pero también desea guardar esos errores en un archivo, para que pueda revisarlos más tarde o pegar el resultado en un foro de discusión y preguntarle a la gente al respecto.

Hay otra situación, que se encuentra a menudo, en la que tendrá que tee , que es: desea escribir el resultado de un comando en una ubicación donde solo el usuario raíz puede leer o escribir. Esto no funcionará.

/sbin/blkid > /root/somefile

Entonces, podrías pensar: "Bueno, por supuesto, solo usa sudo!” Y te sorprenderá que esto tampoco funcione:

sudo blkid > /root/somefile

Esto se debe a que después de implementar sudo blkid Todavía está conectado como un usuario normal, no principal. y tratando shell (Usualmente golpear) escribir a /root/algunarchivo utilizando credenciales de usuario normales. Para resolver esto, puedes usar tee:

/sbin/blkid | sudo tee /root/somefile

Agregar texto y redirigir errores

tee Un comando útil pero simple; básico | tee algún archivo La mayor parte del tiempo suficiente. Sin embargo, hay dos escenarios que puede encontrar que requieren estos consejos.

Lo primero que hay que saber es que tee Por defecto sobrescribe un archivo. Si tu corres

ls | tee somefile

y luego

ls /tmp | tee somefile

El segundo comando sobrescribirá el contenido de algunos archivos y solo verá el contenido del último comando ejecutado. Para cambiar este comportamiento, puede hacer tee Agrega texto en lugar de escribir. Para hacer esto, simplemente use el interruptor de palanca -a.

ls | tee -a somefile

Lo segundo que debe saber es que no todos los resultados son iguales. Los mensajes de error se manejan de manera diferente y, aunque aparecen en la pantalla, no se consideran stdout , por lo que no será notado por tee. (Se considera stderr.) He aquí un ejemplo de grep.

grep -r L2TP /etc | tee somefile

Se mostrará algo como la siguiente imagen.

Cómo usar el comando tee en Linux

Cartas de denegación de permiso escritas a stderr. Lo único que se escribe en stdout es el texto resaltado. Por este motivo notará que el contenido de “somefileEsto es lo que se muestra en la imagen de abajo.

Cómo usar el comando tee en Linux

En este caso, donde se usa . grep Para la búsqueda de texto, es útil no reenviar mensajes de error al archivo. Esto solo estaba llenando el archivo con archivos innecesarios. Solo desea ver los resultados encontrados. Pero cuando necesite mensajes de error, use 2> y 1 , que redirige stderr A stdout.

grep -r L2TP /etc 2>&1 | tee somefile

Con este comando, notará que somefile Ahora también contiene mensajes de error.

Conclusión

Esperamos que este tutorial cubra todo lo que necesita para aprovechar al máximo el comando tee. Pero si te encuentras con una situación en la que te quedas atascado con tee Deje un comentario a continuación, y es posible que podamos ayudarlo.

DzTech

Soy ingeniero estatal con amplia experiencia en los campos de programación, creación de sitios web, SEO y redacción técnica. Me apasiona la tecnología y me dedico a brindar información de calidad al público. Puedo convertirme en un recurso más valioso para los usuarios que buscan información precisa y confiable sobre reseñas de productos y aplicaciones especializadas en diversos campos. Mi compromiso inquebrantable con la calidad y la precisión garantiza que la información proporcionada sea confiable y útil para la audiencia. La búsqueda constante de conocimiento me impulsa a estar al día con los últimos avances tecnológicos, asegurando que las ideas compartidas se transmitan de forma clara y accesible.
Ir al botón superior