Quelque part le long du chemin, j'ai foutu ma commande ls et maintenant je reçois cette commande lors de l'exécution
$ ls -AhHl --color=auto -rwxr-xr-x 1 clang clang 640 Mar 1 02:46 apple-touch-icon-precomposed.png -rwxr-xr-x 1 clang clang 784 Jul 12 02:54 crossdomain.xml -rwxr-xr-x 1 clang clang 1.2K Mar 1 02:46 favicon.ico drwxr-xr-x 8 clang clang 4.0K Jul 12 23:50 .git -rw-r--r-- 1 clang clang 17 Feb 29 19:48 .gitignore -rwxr-xr-x 1 clang clang 1.4K Jul 12 02:54 humans.txt
Qu'est-ce que j'ai fait qui a fait ignorer les dotfiles et plutôt commander par la première lettre?
Si cela vous aide à voir tous mes fichiers de points ici
Sortie locale
:
$ locale LANG= LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8
Essayez d'ajouter
export LC_COLLATE="C"
Dans vos dotfiles, ou en modifiant l'affectation LC_ALL
à:
export LC_ALL="C"
Cela contrôle la façon dont le tri du niveau de caractère fonctionne – alors que la valeur par défaut serait de trier les fichiers de points en ligne, cela créera la liste de sort
fichiers de points en premier.
Pour aller plus loin, citant le manuel GNU Coreutils (accent mine):
Si vous utilisez une localisation non POSIX (p. Ex., En configurant
LC_ALL
suren_US
), le tri peut produire une sortie triée différemment de celle que vous avez habituée.Dans ce cas, réglez la variable d'environnement
LC_ALL
surC
Notez que le réglage uniquementLC_COLLATE
comporte deux problèmes. Tout d'abord, il est inefficace siLC_ALL
est également configuré. Deuxièmement, il a un comportement indéfini siLC_CTYPE
(ouLANG
, siLC_CTYPE
estLC_CTYPE
) est défini comme une valeur incompatible. Par exemple, vous obtenez un comportement indéfini siLC_CTYPE
estja_JP.PCK
maisLC_COLLATE
esten_US.UTF-8
.
Pour éviter tout changement de système sans besoin réel, on ne peut modifier que la manière dont fonctionne l 'utilisateur actuel en ajoutant l'alias au .bashrc
:
alias ll='LC_COLLATE=C ls -alF'
Cela trie les fichiers de points en premier, permet de gérer correctement (montrer et trier) des jeux de caractères "peu communs" comme cyrillique. Le seul coupable que le tri sera sensible à la casse.
Réglage
LC_ALL="C.UTF-8"
Fonctionne bien pour moi – Umlauts et "ls -la" liste les fichiers dot en premier.
Disclaimer: Il s'agit d'une overkill pour la plupart d'entre vous. Mais je l'ai fait depuis 1995 et j'ai les compétences nécessaires pour faire de mon monde exactement ce que je veux. Alors, pourquoi pas?
J'aime vraiment utiliser différentes méthodes de tri avec ls
, en particulier -rt
(qui est trié par t
modifié par r
mail). Alors, j'ai décidé d'essayer quelque chose de fou et d'utiliser awk pour faire mon tri.
# save as ~/.ls.awk # inpsired by http://superuser.com/questions/448291/how-can-i-make-ls-show-dotfiles-first { if($1 == "total"){ print $0 next } # may need to adjust $9 to match your name column if(match($9, /^(\033\[[0-9]*m)*\./)) # optionally look past xterm highlighting like: ^[[34m df[++dd] = $0 else nf[++nn] = $0 } END{ while (++d in df) print df[d] while (++n in nf) print nf[n] }
Maintenant, au lieu de définir un alias bash, je définis une fonction bash (car les alias ne peuvent qu'apprendre des arguments à la fin, mais les fonctions peuvent les utiliser n'importe où)
ll(){ CLICOLOR_FORCE=1 ls -lhA $* | awk -f ~/.ls.awk; }
Essayons de créer des exemples de fichiers:
for n in 4 .4 3 .3 2 .2 1 .1; do touch $n; sleep 1; done
$ ls -lA total 8 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .1 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .2 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .3 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .4 -rwxr-xr-x 1 bbronosky staff 285 Nov 29 13:14 .ls.awk -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 1 -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 2 -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 3 -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 4 $ ls -lArt total 8 -rwxr-xr-x 1 bbronosky staff 285 Nov 29 13:14 .ls.awk -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 4 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .4 -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 3 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .3 -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 2 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .2 -rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 1 -rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .1
$ ll total 8 -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .1 -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .2 -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .3 -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .4 -rwxr-xr-x 1 bbronosky staff 285B Nov 29 13:14 .ls.awk -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 1 -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 2 -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 3 -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 4 $ ll -rt total 8 -rwxr-xr-x 1 bbronosky staff 285B Nov 29 13:14 .ls.awk -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .4 -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .3 -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .2 -rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .1 -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 4 -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 3 -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 2 -rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 1
Vous pouvez voir ma mise en œuvre ici https://github.com/RichardBronosky/dotfiles/commit/6170c0a9