4Sep

Cómo guardar la salida de un comando en un archivo en Bash( también conocido como Linux y macOS Terminal)

click fraud protection

Cuando ejecuta un comando en el indicador bash, normalmente imprime la salida de ese comando directamente en el terminal para que pueda leerlo inmediatamente. Pero bash también te permite "redirigir" la salida de cualquier comando, guardándolo en un archivo de texto para que puedas revisar el resultado más tarde.

Esto funciona en bash en cualquier sistema operativo, desde Linux y macOS hasta el entorno bash basado en Ubuntu de Windows 10.

Opción uno: Redirigir la salida a un archivo

Para usar la redirección de bash, ejecute un comando, especifique el & gt;o & gt; & gt;operador, y luego proporcione la ruta de un archivo al que desea que se redirija la salida.

  • & gt;redirige la salida de un comando a un archivo, reemplazando el contenido existente del archivo.
  • & gt; & gt;redirige la salida de un comando a un archivo, añadiendo el resultado al contenido existente del archivo.

Técnicamente, esto redirige "stdout", la salida estándar, que es la pantalla, a un archivo.

instagram viewer

Aquí hay un ejemplo simple. El comando ls enumera archivos y carpetas en el directorio actual. Asi que.cuando ejecuta el siguiente comando, ls listará archivos y carpetas en el directorio actual. Pero no los imprimirá en la pantalla; los guardará en el archivo que especifique.

ls & gt;/path/to/ archivo

No tiene que especificar la ruta a un archivo existente. Especifique cualquier ruta válida y bash creará un archivo en esa ubicación.

Si ve el contenido del archivo, verá la salida del comando ls. Por ejemplo, el comando cat imprime los contenidos de un archivo en el terminal:

cat /path/to/ archivo

Recuerde, el & gt;el operador reemplaza el contenido existente del archivo con la salida del comando. Si desea guardar el resultado de varios comandos en un solo archivo, debe usar el & gt; & gt;operador en su lugar. Por ejemplo, el siguiente comando agregará información del sistema al archivo que especifique:

uname -a & gt; & gt;/path/to/ archivo

Si el archivo no existe, bash creará el archivo. De lo contrario, bash dejará el contenido existente del archivo solo y anexará la salida al final del archivo.

Cuando vea el contenido del archivo, verá que los resultados de su segundo comando se agregaron al final del archivo:

Puede repetir este proceso tantas veces como desee para seguir agregando resultados hasta el final del archivo.archivo.

Opción dos: Imprimir salida normalmente y redirigirla a un archivo

Es posible que no le guste redirigir la salida con el & gt;o & gt; & gt;operadores, ya que no verá la salida del comando en la terminal. Para eso es el comando tee. El comando tee imprime la entrada que recibe en la pantalla y la guarda en un archivo al mismo tiempo.

Para canalizar la salida de un comando a tee, imprimirlo en su pantalla y guardarlo en un archivo, use la siguiente sintaxis: comando

|T /path/to/ archivo

Esto reemplazará cualquier cosa en el archivo con la salida del comando, al igual que el & gt;operador.

Para canalizar la salida de un comando a tee, imprimiendo en su pantalla y guardándolo en un archivo, pero anexándolo al final del archivo: comando

|tee-/path/to/ archivo

Esto agregará el resultado al final del archivo, al igual que el & gt; & gt;operador.

El shell bash incluye algunos operadores avanzados adicionales que realizan funciones similares. Serán particularmente útiles si estás escribiendo scripts bash. Consulte el capítulo de Redirección de E / S en la Guía avanzada de Bash-Scripting para obtener información más detallada.