stringtranslate.com

tee (comando)

En informática, teees un comando en intérpretes de línea de comandos ( shells ) que utilizan flujos estándar que leen la entrada estándar y la escriben tanto en la salida estándar como en uno o más archivos, duplicando efectivamente su entrada. [1] Se utiliza principalmente junto con tuberías y filtros . El comando recibe su nombre del divisor en T utilizado en plomería . [2]

Descripción general

Ejemplo de uso de tee : la salida de ls -lse redirige a tee, que la copia al archivo file.txt y al buscapersonas less. El nombre tee proviene de este esquema: parece la letra T mayúscula.

El teecomando se utiliza normalmente para dividir la salida de un programa de modo que se pueda visualizar y guardar en un archivo. El comando se puede utilizar para capturar la salida intermedia antes de que otro comando o programa altere los datos. El comando tee lee la entrada estándar y luego escribe su contenido en la salida estándar . Al mismo tiempo, copia los datos en los archivos o variables especificados. La sintaxis difiere según la implementación del comando.

Implementaciones

El comando está disponible para sistemas operativos Unix y similares a Unix , Microware OS-9 , [3] DOS (por ejemplo, 4DOS , FreeDOS ), Microsoft Windows (por ejemplo, 4NT , Windows PowerShell ) y ReactOS . [4] El comando para Linux fue escrito por Mike Parker, Richard Stallman y David MacKenzie. [5] El comando está disponible como un paquete separado para Microsoft Windows como parte de la colección UnxUtils de puertos Win32 nativos de utilidades comunes similares a Unix de GNU. [6] La versión FreeDOS fue desarrollada por Jim Hall y tiene licencia GPL . [7] El comando tee también se ha portado al sistema operativo IBM i . [8] tee

Además, el comando sponge[9] ofrece capacidades similares.

Unix y similares

tee [ -a ] [ -i ] [ Archivo ... ]

Argumentos:

Banderas:

El comando devuelve los siguientes valores de salida ( estado de salida ):

El uso de la sustitución de procesos permite que más de un proceso lea la salida estándar del proceso original. Lea este ejemplo de GNU Coreutils, invocación de tee.

Nota: Si una escritura en cualquier operando de archivo abierto exitosamente no es exitosa, las escrituras en otros operandos de archivo abiertos exitosamente y la salida estándar continuarán, pero el valor de salida será >0.

4DOS y 4NT

Archivo TEE [/A]...

Argumentos:

Banderas:

Nota: Cuando se utiliza tee con una tubería, la salida del comando anterior se escribe en un archivo temporal . Cuando finaliza ese comando, tee lee el archivo temporal, muestra la salida y la escribe en el archivo o archivos proporcionados como argumento de la línea de comandos .

Windows PowerShell

tee [-FilePath] <Cadena> [-InputObject <PSObject>]tee -Variable <Cadena> [-ObjetoEntrada <ObjetoPS>]

Argumentos:

Nota: tee se implementa como un ReadOnly alias de comando . El nombre del cmdlet interno es Microsoft.PowerShell.Utility\Tee-Object.

Ejemplos

Unix y similares

 programa lint.c | programa tee.lint   

Esto muestra la salida estándar del comando lint program.cen la computadora y, al mismo tiempo, guarda una copia del mismo en el archivo program.lint. Si ya existe un archivo llamado program.lint, se elimina y se reemplaza.

De manera similar, tanto los flujos de salida stdout como stderr se pueden redirigir a la salida estándar y a la program.lintredirección del flujo using:

 programa lint.c 2 > & 1 | programa tee.lint    
 programa lint.c | tee -a programa lint    

Esto muestra la salida estándar del lint program.ccomando en la computadora y, al mismo tiempo, agrega una copia del mismo al final del program.lintarchivo. Si el program.lintarchivo no existe, se crea.

gato  ~/.ssh/id_rsa.pub | ssh admin@servidor "sudo tee -a /root/.ssh/authorized_keys2 > /dev/null"    

Este ejemplo muestra que se utiliza tee para eludir una limitación inherente en el comando sudo . sudo no puede enviar la salida estándar a un archivo. Al volcar su flujo de salida estándar en /dev/null, también suprimimos la salida reflejada en la consola. El comando anterior le otorga al usuario actual acceso root a un servidor a través de ssh, al instalar la clave pública del usuario en la lista de autorización de claves del servidor.

En Bash , la salida se puede filtrar antes de escribirse en el archivo (sin afectar la salida mostrada) mediante la sustitución de procesos . Por ejemplo,

ls  --color = siempre | camiseta > ( sed "s/\x1b[^m]*m//g" > ls.txt )      

elimina los códigos de escape ANSI comunes antes de escribir en ls.txt, pero los conserva para su visualización. [10]

4DOS y 4NT

Este ejemplo busca en el archivo wikipedia.txtcualquier línea que contenga la cadena " 4DOS ", hace una copia de las líneas coincidentes 4DOS.txt, ordena las líneas y las escribe en el archivo de salida 4DOSsorted.txt:

> buscar "4DOS" wikipedia.txt | tee 4DOS.txt | ordenar > 4DOSsorted.txt

Windows PowerShell

ipconfig  |  tee Archivo de salida . txt

Esto muestra la salida estándar del comando ipconfigen la ventana de la consola y simultáneamente guarda una copia del mismo en el archivo OutputFile.txt.

Obtener-Proceso  |  Dónde-Objeto  {  $_ . Nombre  -como  "svc*"  }  |  Tee-Objeto  ABC . txt  |  Dónde-Objeto  {  $_ . Identificadores  -gt  1000  }

Este ejemplo muestra que la entrada canalizada para tee se puede filtrar y que tee se usa para mostrar esa salida, que se filtra nuevamente para que solo se muestren los procesos que poseen más de 1000 identificadores, y escribe la salida sin filtrar en el archivo ABC.txt.

Véase también

Referencias

  1. ^ "Página de manual de tee (posix Sección 1)". IEEE Std 1003.1, edición de 2003, Estándar para la tecnología de la información: Interfaz de sistema operativo portátil (POSIX), Especificaciones básicas de The Open Group, número 6. Consultado el 1 de diciembre de 2013 .
  2. ^ "En Unix, ¿qué significan algunos comandos con nombres poco conocidos?" . Consultado el 3 de febrero de 2012 .
  3. ^ Paul S. Dayan (1992). El gurú del OS-9 - 1: Los hechos . Galactic Industrial Limited. ISBN 0-9519228-0-7.
  4. ^ "reactos/reactos". GitHub . 3 de enero de 2022.
  5. ^ "tee: lee desde la entrada estándar y escribe en la salida estándar y archivos". www.mankier.com .
  6. ^ "Puertos Win32 nativos de algunas utilidades GNU". unxutils.sourceforge.net .
  7. ^ "Paquete FreeDOS de ibiblio.org -- tee (similar a Unix)". www.ibiblio.org .
  8. ^ IBM . «Programación Qshell para IBM System i versión 7.2» (PDF) . IBM . Consultado el 5 de septiembre de 2020 .
  9. ^ "sponge(1): absorbe la entrada estándar/escribe en el archivo - Página del manual de Linux". linux.die.net .
  10. ^ "GNU Coreutils: invocación de tee" . Consultado el 3 de febrero de 2016 .

Lectura adicional

Enlaces externos