¿Es posible desactivar los colores para un comando específico como ls
, pero sin utilizar la API del comando en sí? ¿Existe algún tipo de variable env que desactive el color para un comando como hacer COLOR=off ls
? Cualquier solución sería muy apreciada.
Editar: quiero una solución general que sea aplicable a todos los comandos. comoCOLOR=off command_name
Respuesta1
Si está dispuesto a permitir algunos cambios en el formato, también puede simplemente canalizarlo.cat
ls | cat
Sin colores, pero nueva línea para cada entrada.
Editar:
Desactivar colores a través de la configuración del shell
Verifique los archivos rc de su shell y vea dónde se configuran los colores, luego cree uno nuevo .<shell>rc_mono
donde se eliminan estas configuraciones, consígalo y listo. Por ejemplo, para bash:
$cat ~/.bashrc_mono
export TERM=xterm-mono
. ~/.bashrc
alias ls='ls --color=none'
alias grep='grep --color=none'
Tenga en cuenta que . ~/.bashrc
deben preceder a los nuevos alias de ls
y, grep
ya que su color suele estar establecido en ~/.bashrc
. Entonces todo lo que necesitas hacer es
. ~/bashrc_mono ; ls
En consecuencia, un rc "rehacer colores" podría ser bueno:
$cat ~/.bashrc_recolorize
export TERM=xterm-256color
. ~/.bashrc
Utilice por ejemplo htop
y verá la diferencia.
Respuesta2
Una opción sería establecer la TERM
variable en un tipo de terminal que no admita colores.
Ejemplos:
TERM=dumb ls
TERM=dumb command_name
echo foo | TERM=dumb grep --color o
Decir a los programas que utilicen una terminal tonta también puede tener otros efectos (no deseados) dependiendo del comando que ejecute, por ejemplo, vi
es posible que ya no reconozca las teclas del cursor.
Como lo sugiereFelixJNTambién puedes intentarlo TERM=xterm-mono
, pero en mi sistema de prueba (Git bash en Windows) esto no suprime los colores a diferencia de TERM=dumb
.