Bis zu diesem Monat waren meine Shell-Konfigurationen ziemlich einfach (nur ein .bashrc
oder .bash_profile
hauptsächlich mit einigen Aliasnamen), aber ich habe sie überarbeitet, damit ich je nach Verwendung von zsh und bash ein anderes Verhalten erhalten kann. Sie geben zuerst eine generische Shell-Konfigurationsdatei heraus, die für alles funktionieren soll, und spezialisieren sich dann auf die verwendete Shell (ich verweise darauf).
Ich war heute überrascht, als ich ls
aufhörte zu arbeiten. Es stellte sich heraus, dass es beim Refactoring .bashrc
einen Alias gab
alias ls='ls --color=always'
Das war der Grund für die ls
Bash auf dem Terminal in OSX. Als ich sah, dass BSD Farbe ls
mag -G
, GNU (oder was auch immer auf Ubuntu war) mag --color
, war klar, dass sich einige Optionen unterscheiden.
Meine Frage ist, wie können Unterschiede in den Optionen und dergleichen zwischen BSD- und GNU-Coreutils am besten berücksichtigt werden. Sollte ich in if
Blöcken nach einer env-Variablen suchen, um festzustellen, welches Betriebssystem verwendet wird, und das richtige Verhalten anwenden? Oder ist es sinnvoller, für jedes Betriebssystem separate Konfigurationsdateien zu erstellen?
Während die Antworten auf diese Fragen subjektiv sein können, scheint es ziemlich objektiv zu sein, den Umfang der Unterschiede zwischen BSD- und GNU-Coreutils und Strategien, um diese zu umgehen, um eine generische Konfiguration für die meisten * nix-Anwendungen nutzbar zu machen, zusammenzufassen.
ls -c
unterscheidet sich vonls --color
. Ihre Frage wurde bearbeitet, um sie zu beheben.