GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo imprimir la salida del comando Linux en un archivo?

Utilice el > operador:

rsync -v > log.txt

escribirá la salida del comando rsync en un archivo llamado log.txt .


Puede llamar a su secuencia de comandos y redirigir la "salida estándar" (AKA STDOUT) a un archivo de registro. Use '>>' para agregar al archivo de registro o '>' para sobrescribir el archivo de registro. El archivo se creará (si los permisos en su directorio lo permiten) si aún no existe. Si el archivo ya existe, asegúrese de que usted (o quien ejecute su secuencia de comandos) pueda escribirlo.

Si siempre agrega al archivo de registro en lugar de escribir sobre él, es una buena práctica asegurarse desde el principio de que algo "girará" su archivo de registro, es decir, lo moverá a otro nombre y eliminará los archivos de registro más antiguos. Si el archivo de registro es exclusivo de su secuencia de comandos, puede hacer que su secuencia de comandos se encargue de la rotación del archivo de registro.

Por lo general, la forma preferida es llamar a su secuencia de comandos con STDOUT redirigido, pero puede haber ocasiones en las que desee realizar la redirección dentro de la secuencia de comandos para uno o más comandos. Puede agregar ">> archivo de registro" después de cualquier declaración en un script de shell para agregar STDOUT de ese comando al archivo de registro. Puede cambiar eso a "2>&1>> archivo de registro" para agregar "error estándar" (también conocido como STDERR) y STDOUT al archivo de registro. Por lo general, no desea que STDERR también vaya al archivo de registro, ya que STDERR generalmente se usa para notificar a cualquier persona que esté ejecutando el script de un problema. Pero hay momentos y situaciones en las que sí quieres eso. Si lo desea, puede agrupar comandos en su secuencia de comandos dentro de { y } y redirigir STDOUT de todo el grupo a la vez colocando la redirección después de la llave de cierre.


Además de lo anterior, si tiene curiosidad por ver la salida impresa en la pantalla Y en un archivo para archivar/grepping/etc, es posible que desee "tee " la salida. Es un gran comando y lleva el nombre de la tubería en T que se encuentra en la plomería del mundo real, y funciona bien para "subconsolas" como mysql, etc.

El comando es tee ... aquí hay un ejemplo copiado de un usuario llamado "toydi":

Para mostrar y registrar la salida de un comando al mismo tiempo:ls -l | tee -a file.log En este ejemplo, mostrará la salida de la lista de directorios y también guardará la salida en file.log. La opción -asigna el comando para agregar en lugar de sobrescribir el archivo.

Además, consulte la imagen en wikipedia para obtener una buena visualización de cómo funciona la camiseta. Lo enlazaría, pero no tengo suficientes "puntos de reputación" para publicar más de 1 enlace, y sentí que "toydi" merecía el crédito del enlace :)


Linux
  1. Cómo asignar la salida de un comando de Linux a una variable

  2. Cómo guardar la salida del comando en un archivo en Linux

  3. Cómo vaciar un archivo de registro en Linux

  4. ¿Cómo agregar la salida a un archivo?

  5. ¿Cómo capturar la salida de un comando superior en un archivo en Linux?

Cómo usar un comando de archivo en Linux

Cómo abrir un archivo en Linux

Cómo imprimir líneas duplicadas en un archivo de texto en Linux

Cómo mezclar líneas en un archivo en Linux

Cómo usar el comando lsof en Linux

Cómo usar el comando shred de Linux