Comment puis-je faire ls
trier par type de fichier (par exemple, les répertoires d'abord et ensuite par extension de fichier) ? Les réponses proposées dans (Super Utilisateur) Faire que ls soit trié par type de fichier entraînent des erreurs d'options inconnues de ls
.
Réponses
Trop de publicités?Comme vous l'avez découvert, la version Darwin de l' ls
ne prend pas en charge la commande -X | --sort=extension
option. Cette option est unique à la version GNU de ls
.
Vous pouvez obtenir la version GNU de ls
pour votre système. Le moyen le plus simple d'y parvenir est d'utiliser la fonction Homebrew gestionnaire de paquets et système de portage. Avec Homebrew installé, faites :
brew install coreutils
pour ajouter le Utilitaires de base GNU sur votre système. Tous les utilitaires seront précédés du préfixe g
afin qu'ils n'entrent pas en conflit avec les utilitaires Darwin par défaut fournis par OS X.
Avec les GNU Core Utilites installés, vous pouvez maintenant faire :
gls -X
Et vous verrez la sortie triée comme vous le souhaitez.
Si vous voulez utiliser les GNU Core Utils au lieu des utilitaires fournis avec OS X, vous pouvez mettre la ligne suivante dans votre fichier ~/.bashrc
fichier :
source /usr/local/Cellar/coreutils/8.14/aliases
Et vous n'aurez pas besoin d'utiliser le g
plus de préfixe sur les commandes. Je dois dire que ce n'est pas une chose tout à fait sûre à faire car certains des utilitaires GNU diffèrent des build-ins bash et des outils Darwin dans leur comportement, suffisamment pour qu'ils puissent perturber d'autres choses dans votre session shell. Faites donc cela avec prudence.
Sur la base d'une réponse dans le Lien vers l'article sur les super utilisateurs :
ls -l |sort -d -k 1.1,1.1r -k 9 | cut -c 50-
Si vous voulez voir l'ensemble de la sortie de ls -l
il suffit de laisser de côté le cut
partie.