Cómo guardar la salida de la línea de comandos en un archivo en Windows, Mac y Linux
Cuando ejecuta un comando en una ventana de Terminal, la salida del comando normalmente se imprime en el Terminal o en la pantalla, por lo que puede leerlo inmediatamente. También puede imprimir la salida de un comando en un archivo, si desea guardarlo.
Guardar la salida de un comando en un archivo es útil si está intentando 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: Usaremos el terminal de Mac. Estos 6 comandos de terminal impresionantes mejorarán su MacBook. Estos 6 comandos de terminal increíbles aumentarán su MacBook. Solo puede abarrotar tanto la interfaz gráfica de usuario antes de que se convierta en un desorden, por lo que no debería ser una gran sorpresa. Puedes hacer algunas cosas realmente geniales usando la Terminal de Mac. Lea más en nuestro ejemplo, pero funciona de la misma manera en el shell bash en Linux 40+ Comandos de Terminal de Linux más utilizados 40+ Comandos de Terminal de Linux más utilizados Ya sea que esté comenzando o simplemente tenga curiosidad por el terminal de Linux, aquí están los Los comandos más comunes que lo llevarán a través de su tiempo completo en Linux. Más información y en el nuevo shell bash en Windows 10 Guía rápida para Linux Bash Shell en Windows 10 Guía rápida para Linux Bash Shell en Windows 10 Ahora puede ejecutar Linux en Windows. Conozca más sobre Bash en Windows, desde cómo y por qué debería instalarlo, hasta características ocultas que probablemente no conocía. Lee mas .
Redirigir salida a un archivo solamente
Hay dos operadores para redireccionar la salida de un comando a un archivo en lugar de a la pantalla.
los > el símbolo crea un nuevo archivo si no está presente, o sobrescribe el archivo si ya existe. los >> también crea un nuevo archivo si no está presente, pero agrega el texto al final del archivo si ya existe, en lugar de sobrescribir el archivo.
Nota para sí mismo: cuando redirige una salida 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 la > o la >> operador, y luego proporcione la ruta a un archivo al que se redirige la salida. Por ejemplo, el comando ls enumera los archivos y carpetas en el directorio actual. Cuando ejecute el siguiente comando, la lista de archivos y carpetas se escribirá en la ls_output.txt archivo en el Salida de terminal carpeta.
Reemplazar / ruta / a / archivo con la ruta completa al archivo que desea utilizar.
ls> / ruta / a / archivo
Este es el comando para nuestro ejemplo..
ls> /Users/lorikaufman/TerminalOutput/ls_output.txt
Para ver el contenido del archivo en la ventana de la Terminal, use el gato comando como se muestra en el siguiente comando. De nuevo, reemplazar / ruta / a / archivo con la ruta completa al archivo que desea ver.
cat / path / to / file
los > el operador reemplaza el contenido de un archivo existente cada vez que lo usa para redirigir la salida. Si desea guardar la salida de varios comandos en un solo archivo, use la >> operador en su lugar. Esto agrega la salida 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. Así, en la siguiente línea, uname -a es el comando, seguido de la >> Operador de redireccionamiento. Luego, la ruta completa al archivo al que queremos anexar la salida de la tu nombre mando.
los -una parámetro en el tu nombre El comando imprime toda la información del sistema disponible.
uname -a >> /Usuarios/lorikaufman/TerminalOutput/ls_output.txt
Para ver el archivo con la información adjunta en la ventana de la 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 continuar adjuntando la salida del comando al final del archivo.
Aquí hay otro ejemplo de enviar la salida de la ls comando como árbol de directorios, con los subdirectorios listados recursivamente (el R parámetro) y un archivo por línea (el 1 parámetro).
ls -1R> /Users/lorikaufman/TerminalOutput/dir_tree.txt
Entonces, usamos el gato comando, como se mencionó anteriormente para ver el contenido del archivo en la ventana de Terminal.
cat /Users/lorikaufman/TerminalOutput/dir_tree.txt
Imprimir la salida a la pantalla y redirigirla a un archivo
los > y >> los operadores 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 la tee comando en lugar de > y >> operadores.
¡Alerta nerd! Hoy descubrí el comando 'tee', que se canaliza tanto a un archivo como a una salida estándar. Unix sigue encantando. pic.twitter.com/aClIT8AdJB
- Zeke Sikelianos (@zeke) 29 de agosto de 2017
Usar el tee comando debe canalizar la salida del comando que está ejecutando, como ls, al tee comando, usando el operador de tubería, una barra vertical (|). Por ejemplo, el siguiente comando toma la salida del ls comando y lo canaliza en el tee mando. los tee luego el comando envía esa salida a la pantalla y al archivo que especifique utilizando 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, como el > operador. Utilizamos los siguientes gato comando para ver el contenido de nuestro archivo en la ventana de Terminal.
cat /Users/lorikaufman/TerminalOutput/ls_output.txt
Usar el tee comando para imprimir el resultado en la pantalla y agregarlo al final de un archivo, ingrese el siguiente comando. Aquí, estamos agregando información completa del sistema al final del archivo usando el uname -a comando, al igual que hicimos con el >> operador, pero enviando la salida a la pantalla también.
uname -a | tee -a /Users/lorikaufman/TerminalOutput/ls_output.txt
El siguiente comando es el tee versión de impresión recursiva de un árbol de directorios 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
Entonces, usamos el gato comando de nuevo para ver el contenido del archivo.
cat /Users/lorikaufman/TerminalOutput/dir_tree.txt
Pero espera hay mas
Hay muchas más formas de redirigir la salida, incluidos los errores, a un archivo. Puede leer acerca de los diferentes operadores y comandos utilizados para redirigir la salida en el capítulo Redirección de E / S de la Guía avanzada de scripts de Bash. También puede obtener más información sobre el uso de la línea de comandos. Una 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 realmente no es difícil de aprender. . Lee mas .
He aprendido una buena lección hoy. No redireccione la salida del registro de una iteración de 10 millones de bucles a un archivo txt. Resultado: 5 gb de archivo txt.
- ????????? Lloyd (@ lcarswell1) 21 de mayo de 2017
¿Para qué utiliza la redirección de salida? ¿Qué método utilizas? ¿Has aprendido alguna otra forma de redirigir la salida? Comparte tus pensamientos y experiencias con nosotros en los comentarios a continuación..
Explorar más sobre: Linux Bash Shell, Terminal.