web-dev-qa-db-fra.com

Tri des fichiers et des dossiers avec soulignement au début

J'utilise un trait de soulignement au début des noms de fichiers et de dossiers pour les marquer comme quelque chose de "spécial". Mais ce tri ne fonctionne pas pour la plupart des programmes sous Linux. J'ai essayé LC_COLLATE=C ls et d'autres paramètres régionaux, mais les résultats sont étranges. Disons que j'ai ces dossiers:

2
A
_F
G
K
S
x4

C'est l'ordre de tri de ls. Quand j'utilise LC_COLLATE=C ls, j'ai ceci:

2
A
G
K
S
_F
x4

J'ai ce sous Xubuntu 18.04 en utilisant le xfce-terminal-emulator sur 2 machines.

Qu'est-ce qui ne va pas ici?

2
fmeier

@ Zanna's answer fournit une solution. Une autre solution est la suivante:

$ ls -lfr -1 _* [!_]*
_F
2
A
G
K
S
x4
1
DK Bose

Vous pouvez trier les fichiers avec des soulignements jusqu'à la fin avec --sort=version ou -v, ce qui équivaut à sort -V (tri de version naturelle) (ce qui est particulièrement utile pour trier des fichiers avec des nombres).

$ ls -v1
2
A
G
K
S
x4
_F

Les détails sur le tri des versions se trouvent dans info ls... Notez que:

‘LC_COLLATE’ is ignored, which means ‘ls -v’ and ‘sort -V’ will
 sort non-numeric prefixes as if the ‘LC_COLLATE’ locale category
 was set to ‘C’.

Peut-être que cela convient à votre objectif.

1
Zanna