Bis zu diesem Monat waren meine Shell-Konfigurationen ziemlich einfach (nur ein .bashrcoder .bash_profilehauptsä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 lsaufhörte zu arbeiten. Es stellte sich heraus, dass es beim Refactoring .bashrceinen Alias gab
alias ls='ls --color=always'
Das war der Grund für die lsBash auf dem Terminal in OSX. Als ich sah, dass BSD Farbe lsmag -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 ifBlö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 -cunterscheidet sich vonls --color. Ihre Frage wurde bearbeitet, um sie zu beheben.