Cómo guardar la salida de línea de comando en archivo en Windows, Mac y Linux

Guardar el resultado de un comando en un archivo es útil si está tratando de diagnosticar un problema, y ​​es muy fácil de hacer.

Guardar el resultado de un comando en un archivo es útil si está tratando de diagnosticar un problema, y ​​es muy fácil de hacer.
Anuncio

Cuando ejecuta un comando en una ventana de Terminal, la salida del comando normalmente se imprime en el Terminal o en la pantalla para que pueda leerlo inmediatamente. También puede imprimir la salida de un comando a un archivo, si desea guardarlo.

Guardar el resultado de un comando en un archivo es útil si está tratando de diagnosticar un problema. Para obtener ayuda del soporte técnico, es posible que deba ejecutar ciertos comandos en su computadora y enviar los resultados al equipo de soporte. Esto es fácil usando la redirección de salida en la línea de comando.

Hoy veremos cómo enviar la salida de un comando a un archivo de texto en el shell bash en Windows, Mac y Linux.

Nota: Utilizaremos el Terminal Mac. Estos 6 increíbles comandos de terminal aumentarán su MacBook. Estos 6 increíbles comandos de terminal aumentarán su MacBook. Solo puede meter tanto en la interfaz gráfica de usuario antes de que se llene de objetos, por lo que no debería ser tan grande. sorprende que puedas hacer cosas geniales usando la Terminal Mac. Lea más en nuestro ejemplo, pero funciona de la misma manera en el shell bash en Linux 40+ Comandos de terminal Linux más usados ​​40+ Comandos de terminal Linux más utilizados Ya sea que recién esté empezando o simplemente tenga curiosidad por el terminal Linux, aquí están los comandos más comunes que lo llevarán a través de todo su tiempo en Linux. Lea más y en el nuevo shell bash en Windows 10 Una guía rápida para Linux Bash Shell en Windows 10 Una guía rápida para Linux Bash Shell en Windows 10 Ahora puede ejecutar Linux en Windows. Obtenga más información sobre Bash en Windows, desde cómo y por qué debería instalarlo, hasta funciones ocultas que probablemente desconozca. Lee mas .

Redirigir la salida a un archivo solamente

Hay dos operadores para redirigir la salida de un comando a un archivo en lugar de la pantalla.

El símbolo > crea un nuevo archivo si no está presente, o sobrescribe el archivo si ya existe. >> también crea un archivo nuevo si no está presente, pero agrega el texto al final del archivo si ya existe, en lugar de sobrescribir el archivo.

Nota para uno mismo: cuando redirige un resultado de script de shell a un archivo, no se mostrará en la consola :-) #StupidMe

- Xavier Mertens? (@xme) 5 de agosto de 2017

Para redirigir la salida de un comando a un archivo, escriba el comando, especifique el operador > o >> y luego proporcione la ruta al archivo al que desea que se redirija la salida. Por ejemplo, el comando ls enumera los archivos y las carpetas en el directorio actual. Cuando ejecuta el siguiente comando, la lista de archivos y carpetas se escribirá en el archivo ls_output.txt en la carpeta TerminalOutput .

Reemplace / ruta / a / archivo con la ruta completa al archivo que desea utilizar.

ls>/path/to/file 

Este es el comando para nuestro ejemplo.

 ls>/Users/lorikaufman/TerminalOutput/ls_output.txt 

Para ver el contenido del archivo en la ventana de Terminal, use el comando cat como se muestra en el siguiente comando. De nuevo, reemplace / ruta / a / archivo con la ruta completa al archivo que desea ver.

 cat /path/to/file 

guardar ventanas de salida de línea de comandos mac linux

El operador > reemplaza el contenido de un archivo existente cada vez que lo usa para redirigir el resultado. Si desea guardar el resultado de varios comandos en un solo archivo, use el operador >> en su lugar. Esto agrega el resultado de un comando al final del archivo especificado, si ya existe. Si el archivo no existe, crea uno nuevo.

Por ejemplo, adjuntaremos información del sistema al final del archivo que creamos anteriormente. Entonces, en la siguiente línea, uname -a es el comando, seguido por el >> operador de redirección. Luego, la ruta completa al archivo al que queremos agregar la salida del comando uname .

El parámetro -a en el comando uname imprime toda la información disponible del sistema.

 uname -a>>/Users/lorikaufman/TerminalOutput/ls_output.txt 

Para ver el archivo con la información adjunta en la ventana del Terminal, ingrese el siguiente comando, con la ruta completa a su archivo.

 cat /Users/lorikaufman/TerminalOutput/ls_output.txt 

Repita este proceso tantas veces como sea necesario para seguir agregando la salida del comando al final del archivo.

guardar ventanas de salida de línea de comandos mac linux

Aquí hay otro ejemplo de envío de la salida del comando ls como árbol de directorios, con subdirectorios enumerados recursivamente (el parámetro R ) y un archivo por línea (el parámetro 1 ).

 ls -1R>/Users/lorikaufman/TerminalOutput/dir_tree.txt 

Luego, usamos el comando cat, como se mencionó anteriormente para ver el contenido del archivo en la ventana de Terminal.

 cat /Users/lorikaufman/TerminalOutput/dir_tree.txt 

guardar ventanas de salida de línea de comandos mac linux

Imprimir salida a pantalla y redirigirla a un archivo

Los operadores > y >> no muestran la salida de un comando en la pantalla. La salida solo se envía a un archivo.

Si desea enviar la salida a un archivo y verlo en la pantalla, use el comando tee en lugar de los operadores > y >> .

Nerd alerta! Hoy descubrí el comando `tee`, que canaliza tanto a un archivo como a un estándar. Unix continúa deleitándose. pic.twitter.com/aClIT8AdJB

- Zeke Sikelianos (@zeke) 29 de agosto de 2017

Para usar el comando tee, debe canalizar la salida del comando que está ejecutando, como ls, al comando tee, utilizando el operador de tubería, una barra vertical ( | ). Por ejemplo, el siguiente comando toma la salida del comando ls y lo canaliza al comando tee . El comando tee luego envía esa salida a la pantalla y a un archivo que usted especifique usando la ruta completa al archivo.

 ls | tee /Users/lorikaufman/TerminalOutput/ls_output.txt 

El comando anterior reemplaza todo el contenido del archivo o crea uno nuevo si no existe, al igual que el operador > . Usamos el siguiente comando cat para ver el contenido de nuestro archivo en la ventana Terminal.

 cat /Users/lorikaufman/TerminalOutput/ls_output.txt 

guardar ventanas de salida de línea de comandos mac linux

Para usar el comando tee para imprimir la salida a la pantalla y anexarla al final de un archivo, ingrese el siguiente comando. Aquí, estamos agregando información completa del sistema al final del archivo usando el comando uname -a, tal como lo hicimos con el operador >>, pero también enviando la salida a la pantalla.

 uname -a | tee -a /Users/lorikaufman/TerminalOutput/ls_output.txt 

guardar ventanas de salida de línea de comandos mac linux

El siguiente comando es la versión en T de imprimir un árbol de directorios recursivamente en un archivo y en la pantalla, un archivo en cada línea, tal como hicimos con el operador > .

 ls -1R | tee /Users/lorikaufman/TerminalOutput/dir_tree.txt 

Luego, usamos el comando cat nuevamente para ver el contenido del archivo.

 cat /Users/lorikaufman/TerminalOutput/dir_tree.txt 

guardar ventanas de salida de línea de comandos mac linux

Pero espera hay mas

Hay muchas más maneras de redirigir el resultado, incluidos los errores, a un archivo. Puede leer sobre los diferentes operadores y comandos utilizados para redirigir la salida en el capítulo de Redirección de E / S de la Guía de scripts avanzados de Bash. También puede obtener más información sobre el uso de la línea de comando. Guía rápida para comenzar con la línea de comandos de Linux Una guía rápida para comenzar con la línea de comandos de Linux Puede hacer muchas cosas increíbles con comandos en Linux y no es realmente difícil aprender . Lee mas .

Aprendí una buena lección hoy. No redirija la salida de registro de un bucle de 10 millones de iteraciones a un archivo txt. Resultado: archivo de 5 gb txt.

- Lloyd (@ lcarswell1) 21 de mayo de 2017

¿Para qué usa la redirección de salida? ¿Qué método usas? ¿Has aprendido otras formas de redirigir la producción? Comparta sus pensamientos y experiencias con nosotros en los comentarios a continuación.

In this article