Je suivais cet article pour mettre à jour mon bash. Je souhaite vraiment mettre à jour ma version de bash afin de pouvoir utiliser l' --group-directories-first
option pour la ls
commande.
Jusqu'à présent, j'ai accompli ce qui suit à partir de l'article lié:
J'ai exécuté avec succès la brew install bash
commande et téléchargé le nouveau bash. Selon l'article, je peux vérifier que le /usr/local/bin/bash --version
sur ma machine montre ce qui suit:
GNU bash, version 5.0.11 (1) -release (x86_64-apple-darwin18.6.0) Copyright (C) 2019 Free Software Foundation, Inc. Licence GPLv3 +: GNU GPL version 3 ou ultérieure http://gnu.org/licenses /gpl.html
C'est un logiciel libre; vous êtes libre de le modifier et de le redistribuer. Il n'y a AUCUNE GARANTIE, dans la mesure permise par la loi.
sudo vim /etc/shells
commande, éditant le fichier pour inclure le nouveau bash téléchargé. Voici à quoi cela ressemble:chsh -s /usr/local/bin/bash
pour définir le nouveau bash par défaut.Cependant, même après avoir fermé et relancé le terminal, je ne sais pas si j'utilise le nouveau terminal. Ceci est dû au fait:
quand j'exécute, bash --version
j'obtiens ce qui suit:
GNU bash, version 5.0.11 (1) -release (x86_64-apple-darwin18.6.0) Copyright (C) 2019 Free Software Foundation, Inc. Licence GPLv3 +: GNU GPL version 3 ou ultérieure http://gnu.org/licenses /gpl.html
C'est un logiciel libre; vous êtes libre de le modifier et de le redistribuer. Il n'y a AUCUNE GARANTIE, dans la mesure permise par la loi.
Mais quand je cours, echo $BASH_VERSION
j'obtiens quelque chose du contraire ( 3.2.57(1)-release
). N'est-ce pas la vieille version?
ls --group-directories-first
:ls: option illégale - - utilisation: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [fichier ...]
Toute aide ou pointeurs serait grandement apprécié.
Merci!
Cela n'a rien à voir avec bash
. La commande ls
n'est pas intégrée à bash
.
macOS est basé sur le système d'exploitation Unix. Certaines de ses commandes de base sont de type BSD. L' --group-directories-first
option souhaitée n'est disponible que dans GNU ls
. Tout ce dont vous avez besoin est une saveur GNU ls
.
Solution: installer coreutils
, dans laquelle GNU ls
est inclus.
brew install coreutils
Ajoutez le code suivant ~/.bash_profile
pour donner la priorité à la ls
commande et aux autres commandes GNU par rapport à la commande BSD intégrée dans macOS.
# make GNU commands available
export PATH="/usr/local/opt/coreutils/libexec/gnubin:${PATH}"
export MANPATH="/usr/local/opt/coreutils/libexec/gnuman:${MANPATH}"
Si vous voulez seulement GNU ls
mais pas d'autres commandes à saveur GNU. N'ajoutez pas le contenu ci-dessus, mais créez un alias dans ~/.bash_profile
.
alias ls="/usr/local/opt/coreutils/libexec/gnubin/ls"
Voici toutes les commandes apportées coreutils
.
❯ ls /usr/local/opt/coreutils/libexec/gnubin
'[' cat cksum dd echo fmt install ls mv od printf rmdir sha384sum split tac tr unexpand wc
b2sum chcon comm df env fold join md5sum nice paste ptx runcon sha512sum stat tail true uniq who
base32 chgrp cp dir expand groups kill mkdir nl pathchk pwd seq shred stdbuf tee truncate unlink whoami
base64 chmod csplit dircolors expr head link mkfifo nohup pinky readlink sha1sum shuf stty test tsort uptime yes
basename chown cut dirname factor hostid ln mknod nproc pr realpath sha224sum sleep sum timeout tty users
basenc chroot date du false id logname mktemp numfmt printenv rm sha256sum sort sync touch uname vdir
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots