Par défaut, la commande ls trie uniquement par nom de fichier, mais je veux que les répertoires apparaissent avant les autres types de fichiers. Je souhaiterais peut-être même que les fichiers soient triés par extension, comme le fait l'explorateur Windows en fonction du type de colonne. Y a-t-il un moyen de faire quelque chose de similaire avec ls?
44
--sort=extension
et--group-directories-first
(ou seulement--group-directories
) fonctionne bien pour moi sur Ubuntu 12.10. Vaut le coup sur votre machine aussi! =)-X / --sort=extension
avec--group-directories-first
et tout ce que j'ai essayé avec les distributions Linux modernes. Le PO fait référence à Fedora Core 8 (sorti en 2007), il est donc probable que de tels problèmes remontent à un passé lointain.Sur Linux,
(
man ls
est votre ami!)la source
gls --group-directories-first
sur Mac si vous installezGNU Core utils
sur homebrew-X est l'option que vous recherchez:
la source
Sur Bash, cela va trier:
De
man rev
:Donc 1. ls donne sa sortie, avec tous les drapeaux que vous voulez 2. chaque ligne est inversée 3. puis ils sont triés 4. puis inversés 5. comme ceci:
Ou, plus précisément, comme ci-dessous. Ils sont triés par dernier caractère, puis avant-dernier, etc. Tous les fichiers .rtf, par exemple, sont listés ensemble, après un fichier .save et un autre fichier sans extension dont le nom se termine par 'e'. Viennent ensuite les fichiers .png, et ainsi de suite. Cela fonctionnera également avec ls -l, car l'extension est normalement la dernière chose sur la ligne (exceptions si vous avez des lignes telles que "tmp @ -> / home / jones / tmp", où les liens sont suivis par leurs cibles).
la source
ls -F
-F
) si on le passe à la louperev
etsort
que la couleur n’enlève pas la couleur (-G
).Si vous n'êtes pas sur Linux,
devrait trier les répertoires en premier (laissez-moi savoir si je me trompe). Ne trie pas par extension cependant: vous devez faire la déclaration awk beaucoup plus occupée si vous voulez le faire ...
Pour que cela fonctionne également avec des noms contenant des espaces, je remplacerais probablement l'awk par quelque chose comme
sed -E -e 's/([^ ]+[ ]+){8}//'
d'effacer les 8 premiers champs au lieu d'imprimer le 9ème.la source
CLICOLOR
activé, cela supprimera la coloration.sed -E -e 's/([^ ]+[ ]+){8}//'
à effacer les 8 premiers champs au lieu d'imprimer le 9èmels -l |sort -d -k 1.1,1.1r -k 9 | cut -c 50-
Si vous utilisez Linux, GNU
ls
supporte l’--sort
option: -la source
Une bonne approche consiste à séparer les dossiers au début, puis les fichiers triés par extensions , par TRI et par INVERSION:
la source
J'ai ajouté à mon .bashrc (linux) la ligne
De cette façon, je tape simplement lx et je le trie par extension.
la source
ls -X
:)