¿Cómo puedo borrar la salida anterior en Terminal en Mac OS X?

Resuelto eonil asked hace 14 años • 16 respuestas

Conozco el clearcomando que "borra" la pantalla actual, pero lo hace simplemente imprimiendo muchas líneas nuevas: el contenido borrado simplemente se desplaza hacia arriba.

¿Hay alguna manera de borrar por completo toda la salida anterior del terminal para que no pueda acceder a ella ni siquiera desplazándome hacia arriba?

eonil avatar Feb 04 '10 16:02 eonil
Aceptado

Para borrar el terminal manualmente:

+K

Command+ Kpara teclados más nuevos

Para borrar la terminal desde un script de shell;

/usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down'
Alok Singhal avatar Feb 04 '2010 09:02 Alok Singhal

Una mejor manera de borrar la pantalla desde un script...

Si está utilizando la aplicación OS X Terminal (como lo indica el OP), un mejor enfoque (gracias a la respuesta de Chris Page a ¿Cómo restablezco el desplazamiento hacia atrás en la terminal mediante un comando de shell? ) es solo este:

clear && printf '\e[3J'

o más concisamente ( consejo para el usuario qiuyi ):

printf '\33c\e[3J'

que borra el búfer de desplazamiento hacia atrás y la pantalla. Hay otras opciones tambien. Vea la respuesta de Chris Page a ¿Cómo restablezco el desplazamiento hacia atrás en la terminal mediante un comando de Shell? para más información.

Respuesta original

La respuesta de AppleScript dada en este hilo funciona, pero tiene el desagradable efecto secundario de borrar cualquier ventana de terminal que esté activa. ¡Esto es sorprendente si estás ejecutando el script en una ventana e intentando realizar el trabajo en otra!

Esto se puede evitar refinando el AppleScript para que solo borre la pantalla si está en primer plano haciendo esto (tomado de la respuesta de MattiSG a ¿Cómo restablezco el desplazamiento hacia atrás en la terminal mediante un comando de shell? ):

osascript -e 'if application "Terminal" is frontmost then tell application "System Events" to keystroke "k" using command down'

... pero como cuando no es la ventana actual, la salida se acumulará hasta que vuelva a ser actual, lo que probablemente no sea lo que desea.

fearless_fool avatar Oct 28 '2014 17:10 fearless_fool

Para eliminar solo la última salida:

+L

Para borrar el terminal por completo:

+K

Aman Jain avatar May 28 '2019 07:05 Aman Jain