Hasta este mes, mis configuraciones de shell han sido bastante simples (solo un .bashrc
o .bash_profile
con algunos alias principalmente), pero lo he refactorizado para que pueda obtener un comportamiento diferente dependiendo de si estoy usando zsh y bash. Primero obtienen un archivo de configuración de shell genérico que debería funcionar para lo que sea, luego se especializan para el shell específico que se está utilizando (enlace simbólico a esto).
Hoy me sorprendió cuando ls
dejé de trabajar. Resultó que durante la refactorización .bashrc
, había un alias
alias ls='ls --color=always'
eso fue romper cosas para ls
bash en Terminal en OSX. Una vez que vi que a BSD ls
le gusta el -G
color, pero a GNU (o lo que sea que estaba en Ubuntu) le gusta --color
, quedó claro que algunas opciones difieren.
Mi pregunta es, ¿cuál es la mejor manera de explicar las diferencias en las opciones y tales entre los coreutils de BSD y GNU? ¿Debo probar una variable env en if
bloques para ver qué sistema operativo se está utilizando y aplicar el comportamiento correcto? ¿O tiene más sentido crear archivos de configuración separados para cada sistema operativo?
Si bien las respuestas a estas preguntas pueden ser subjetivas, parece que un resumen del alcance de las diferencias entre los coreutils de BSD y GNU y las estrategias para solucionarlos para hacer que una configuración genérica sea utilizable en la mayoría de * nix sería bastante objetivo.
ls -c
es diferente dels --color
. Editó su pregunta para arreglarla.