Question
Pouvez-vous trier un l'inscription ls par nom?
La solution
Mon ls trie par nom par défaut. Que voyez-vous?
Etats man ls
:
List information about the FILEs (the current directory by default). Sort entries alpha‐betically if none of -cftuvSUX nor --sort is specified.
:
Autres conseils
Pour quelque chose de simple, vous pouvez combiner ls sort . Pour seulement une liste de noms de fichiers:
ls -1 | sorte
Pour les trier dans l'ordre inverse:
ls -1 | sort -r
ls
de coreutils
effectue une sorte conscient locale par défaut, et peut ainsi produire des résultats surprenants dans certains cas (par exemple, %foo
triera entre bar
et quux
à LANG=en_US
). Si vous voulez une sorte de ASCIIbetical, utilisez
LANG=C ls
La beauté des outils * nix est que vous pouvez les combiner:
ls -l | sort -k9,9
La sortie de ls -l
ressemblera à ceci
-rw-rw-r-- 1 luckydonald luckydonald 532 Feb 21 2017 Makefile
-rwxrwxrwx 1 luckydonald luckydonald 4096 Nov 17 23:47 file.txt
Donc, avec 9,9
vous 9
colonne de tri à la colonne 9
, étant les noms de fichiers. Vous devez fournir où arrêter, ce qui est la même colonne dans ce cas. Les colonnes commencent par 1
.
En outre, si vous voulez ignorer les majuscules / minuscules, ajouter --ignore-case
à la commande de tri.
AVIS: "a" vient après "Z":
$ touch A.txt aa.txt Z.txt
$ ls
A.txt Z.txt aa.txt
Les fichiers étant différents que par une chaîne numérique peut être triée sur ce numéro à la condition qu'elle soit précédée d'un séparateur.
Dans ce cas, la syntaxe suivante peut être utilisée:
ls -x1 file | sort -t'<char>' -n -k2
Exemple:
ls -1 TRA*log | sort -t'_' -n -k2
TRACE_1.log
TRACE_2.log
TRACE_3.log
TRACE_4.log
TRACE_5.log
TRACE_6.log
TRACE_7.log
TRACE_8.log
TRACE_9.log
TRACE_10.log
A partir de la page de manuel (pour ls bash):
entrées par ordre alphabétique si aucun des -cftuSUX ni --sort.
Vérifiez votre fichier .bashrc
pour les alias.
L'utilitaire ls
doit être conforme à la norme IEEE Std 1003.1-2001 ( POSIX.1
) qui indique:
22027:. Elle tri répertoire et opérandes non répertoire suivant séparément à la séquence d'assemblage dans la configuration locale
26027: Par défaut, le format est non spécifié, mais la sortie sont triés par ordre alphabétique par nom de symbole:
- Bibliothèque ou le nom de l'objet, si -A est spécifié
- Mnémonique
- type de symbole
- Valeur du symbole
- La taille associée au symbole, le cas échéant
ls -X fonctionne à cet effet, dans le cas où vous avez crénelage ls à un défaut plus utile.
In Debian Jessie, this works nice:
ls -lah --group-directories-first
# l=use a long listing format
# a=do not ignore entries starting with .
# h=human readable
# --group-directories-first=(obvious)
# Note: add -r for reverse alpha
# You might consider using lh by appending to ~/.bashrc as the alias:
~$ echo "alias lh='ls -lah --group-directories-first'" >>~/.bashrc
# -- restart your terminal before using lh command --