LS – ¿Ganamos realmente deshabilitando colores en la shell?

Los colorines los carga el diablo algunas veces. Es posible que en determinados escenarios con muchos archivos un simple LS con colorines activados en la shell pueda impactar más.

Esto es un ejemplo con unos 80.000 archivos.

Hagamos la prueba del algodón con –color=always en el ls:

$ mkdir prueba && cd "$_"
$ touch archivo{1..80000}.txt
$ time ls --color=always -1 | wc -l

 

Ahora hagamos unos cambios para tener un ls sin los colorines en otra terminal y mismo directorio si se quiere comprobar:

$ export LS_COLORS='ex=00:su=00:sg=00:ca=00:'
$ eval $(dircolors -b | sed s/ca=[^:]*:/ca=:/)
$ time ls -1 | wc -l

En ambos no se está imprimiendo en pantalla de modo que la función write() no consume y tampoco lstat().

 

Se puede comprobar mejor con strace quitando el wc -l.

$ time strace -c ls --color=always -1
$ time strace -c ls -1

Resumen

Tampoco es para tanto poner unos colorines. Esto digamos que puede marcar un poco la diferencia cuando se trabaja con cientos de miles de archivos pero … rara vez haces un ls de tanto archivo ya que no tiene sentido salvo para volcar listados o cosas así.
Lo normal es buscar algunos tipos de archivos y para eso se indexan las cosas y se hacen búsquedas binarias o filtros.

Cierto es que los colorines algunas veces pasan algo de factura pero … también pasa factura una shell excesivamente austera cuando la usamos humanos.

Yo sinceramente siempre que pueda usaré colorines y utilidades que me hagan poder trabajar mejor en la shell. Esto está bien saberlo pero tampoco aplica demasiado en la realidad de millones de personas :).

 

¿Le ha gustado el contenido?

Si le ha gustado y le ha sido de utilidad puede donar aquí https://paypal.me/mierdatv .  
También puede escribir un comentario si lo considera oportuno.  
 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *