J'utilise le trait de soulignement pour désigner les répertoires spéciaux qui doivent aller en haut. Dans mon dossier de projets, j'ai des projets proj_a, proj_b et _old_projects. Cela ne sert à rien si ce dossier se trouve dans les o-projets.
Martin Ueding
Réponses:
9
En tant que commande unique, vous pouvez le faire:
LC_COLLATE=C ls
Ou vous pouvez ajouter export LC_COLLATE="C"à votre .bashrc pour le rendre permanent (peut avoir des résultats inattendus triant ailleurs).
Je suppose que je vais simplement alias ls avec cela, afin qu'il n'ait pas d'effets secondaires.
Martin Ueding
Ça ne marche pas pour moi. Je reçois ceci -> paste.pocoo.org/show/403333 (c'est l'allemand mais cela ne devrait pas avoir d'importance)
dAnjou
2
@dAnjou LC_COLLATE=Cls définit l'ordre de tri POSIX traditionnel, qui est en ASCII dans lequel les majuscules précèdent le trait de soulignement. Pour que les traits de soulignement soient triés avant les majuscules, vous devez passer sous le capot et créer une définition de paramètres régionaux personnalisée sous / usr / share / i18n / locales.
misterben
2
Cela a peut-être fonctionné dans le passé, mais cela ne fonctionne pas sur Ubuntu 12.04.
Mikel
1
Depuis Ubuntu 14.04, LC_COLLATE=C lsne fonctionne pas, mais LC_ALL=C lsfonctionne.
jwodder
6
Au cas où il n'y aurait pas de méthode intégrée pour ce faire, vous pouvez utiliser un simple remplacement pour sort:
#!/usr/bin/env python
import sys
for i in sorted(sys.stdin):
sys.stdout.write(i)
Enregistrez-le, par exemple, sur /bin/pysortet rendez-le exécutable ( sudo cp whatever.py /bin/pysortet sudo chmod a+x /bin/pysort), et exécutez-le en tant que ls | pysort:
Je le mettrais probablement en place ~/binmais une bonne solution de repli. Il est probablement préférable d'utiliser le globbing dans python car la sortie de ls peut être étrange si un nom de fichier contient une nouvelle ligne.
Martin Ueding
1
ls | sortne ferait pas exactement ce dont vous avez besoin?
Réponses:
En tant que commande unique, vous pouvez le faire:
LC_COLLATE=C ls
Ou vous pouvez ajouter
export LC_COLLATE="C"
à votre .bashrc pour le rendre permanent (peut avoir des résultats inattendus triant ailleurs).Plus d'informations sur les forums Ubuntu .
la source
LC_COLLATE=C
ls définit l'ordre de tri POSIX traditionnel, qui est en ASCII dans lequel les majuscules précèdent le trait de soulignement. Pour que les traits de soulignement soient triés avant les majuscules, vous devez passer sous le capot et créer une définition de paramètres régionaux personnalisée sous / usr / share / i18n / locales.LC_COLLATE=C ls
ne fonctionne pas, maisLC_ALL=C ls
fonctionne.Au cas où il n'y aurait pas de méthode intégrée pour ce faire, vous pouvez utiliser un simple remplacement pour
sort
:Enregistrez-le, par exemple, sur
/bin/pysort
et rendez-le exécutable (sudo cp whatever.py /bin/pysort
etsudo chmod a+x /bin/pysort
), et exécutez-le en tant quels | pysort
:la source
~/bin
mais une bonne solution de repli. Il est probablement préférable d'utiliser le globbing dans python car la sortie de ls peut être étrange si un nom de fichier contient une nouvelle ligne.ls | sort
ne ferait pas exactement ce dont vous avez besoin?la source