GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar el comando tee de Linux

Introducción

Cuando el usuario ejecuta un comando en un shell interactivo de Linux, el resultado se muestra en el terminal de texto. Sin embargo, hay formas de cambiar este comportamiento utilizando comandos de shell adicionales conectados en una canalización.

En este tutorial, aprenderá a usar el comando tee en Linux para administrar la salida de un comando.

Requisitos previos

  • Un sistema que ejecuta Linux
  • Acceso a la línea de comando o terminal
  • Privilegios de Sudo

¿Qué hace el comando tee en Linux?

La tee El comando lee la entrada estándar (stdin) y la escribe tanto en la salida estándar (stdout) como en uno o más archivos. tee suele ser parte de una canalización, y cualquier número de comandos puede precederlo o seguirlo.

Comandos tee en Linux con ejemplos

La tee El comando se usa solo o con opciones adicionales. Las siguientes secciones enumeran las opciones disponibles y proporcionan ejemplos de uso de comandos.

Uso básico

La sintaxis básica para tee el comando es:

[command] | tee [options] [filename]

El siguiente ejemplo demuestra el uso de tee para crear un archivo que almacene información sobre una interfaz de red mientras proporciona el mismo resultado en la terminal:

El comando cat confirma que tee escribió con éxito la salida de ifconfig al archivo example.txt :

Si el archivo utilizado para el comando ya existe, tee sobrescribe el contenido anterior del archivo.

Anexar al archivo dado

Sobrescribir el contenido del archivo es el comportamiento predeterminado del tee dominio. Utilice el argumento -a (o --append ) para agregar la salida del comando al final del archivo.

[command] | tee -a [filename]

Por ejemplo, use el echo comando para agregar una línea de texto a un archivo:


Confirme la adición exitosa con el cat comando:

Escribir en varios archivos

Usa tee seguido de cualquier número de archivos para escribir el mismo resultado en cada uno de ellos:

[command] | tee [options] [filename1] [filename2]...

El siguiente ejemplo muestra cómo escribir la salida de echo comando a dos archivos:

El ls comando muestra que tee archivos creados correctamente example1.txt y example2.txt .

Ocultar la salida

Decir tee para almacenar la salida del comando en un archivo y omitir la salida del terminal, use la siguiente sintaxis:

[command] | tee [options] [filename] >/dev/null

En el siguiente ejemplo, tee crea un archivo que contiene los datos de la interfaz de red, omitiendo la salida estándar:

Redirigir la salida de un comando a otro

tee no tiene que ser el último comando en la canalización. Úselo para reenviar la salida a otro comando:

[command] | tee [options] [filename] | [command]

En el siguiente ejemplo, tee almacena la salida de ls comando a example.txt y pasa el contenido de ese archivo al comando grep, que encuentra y muestra todas las instancias de la palabra "ejemplo":

Ignorar interrupciones

Para habilitar tee para salir correctamente incluso después de que se haya interrumpido el comando anterior, agregue el argumento -i (o --ignore-interrupts ):

[command] | tee -i [filename]

El siguiente ejemplo muestra tee escribiendo el resultado del comando ping y completando la acción con éxito incluso después de ping se interrumpe con Ctrl+C :

Uso de te con Sudo

Para habilitar tee para escribir en un archivo propiedad de la raíz o un archivo que pertenece a otro usuario, coloque el comando sudo justo antes de tee .

[command] | sudo tee [options] [filename]

El siguiente ejemplo muestra un intento fallido de escribir en el sudoex.txt propiedad de la raíz . Cuando sudo se agrega el comando, la operación se completa:

Usando te en Vim Editor

Si abre y edita un archivo de propiedad raíz en Vim sin utilizar sudo comando, intentar guardar los cambios produce un error:

Para anular este error, escriba lo siguiente en Vim:

:w !sudo tee %

Después de ingresar el sudo contraseña, Vim muestra una advertencia pero escribe los cambios en el archivo.

Diagnóstico de errores al escribir en no conductos

Para instruir tee para imprimir un mensaje de error cuando falla el proceso, utilice -p argumento:

[command] | tee -p [filename]

La acción predeterminada de tee -p es salir e imprimir el mensaje de error inmediatamente después de detectar el error al escribir en una tubería. Para cambiar el comportamiento del comando en caso de error de escritura, use --output-error argumento, seguido del modo que especifica el comportamiento:

[command] | tee --output-error=[mode] [filename]

Hay cuatro modos posibles:

  • warn – diagnostica errores al escribir en cualquier salida.
  • warn-nopipe – diagnostica errores al escribir en cualquier salida que no sea de tubería.
  • exit – sale en caso de errores al escribir en cualquier salida.
  • exit-nopipe – sale en caso de errores al escribir en cualquier salida que no sea de tubería.

Usar el comando tee con Bash Script

La tee El comando se encuentra a menudo en scripts bash. Considere el siguiente ejemplo:

El script anterior imprime el mensaje "Hello World" y almacena el resultado en un archivo de registro. Ejecutar el script crea un archivo de registro en el tmp carpeta. El registro contiene la salida del script:

Ver archivos de registro

La escritura de la salida del script en un archivo de registro generalmente se realiza con el > operador:

./testbash.sh > testbash.log

El comando anterior crea un archivo de registro pero no escribe nada en la salida estándar.

Usa tee para crear un archivo de registro y ver el resultado en la terminal:

./testbash.sh | tee testbash.log

Ver Ayuda e Información de Versión

Ver la versión actual de la tee comando escribiendo:

tee --version

Para obtener instrucciones sobre la tee sintaxis del comando y los argumentos disponibles, use el argumento de ayuda del comando:

tee --help

Linux
  1. Cómo usar el comando grep de Linux

  2. Cómo usar el comando de historial en Linux

  3. Cómo usar el comando Su en Linux

  4. Cómo usar el comando id en Linux

  5. Cómo usar el comando "pantalla" en Linux

Cómo usar el comando superior de Linux

Cómo usar el comando fd en el sistema Linux

¿Cómo usar el comando wget en Linux?

¿Cómo usar el comando xargs en Linux?

Cómo usar el comando RPM en Linux

Cómo usar el comando which en Linux