Cela dépend beaucoup de la ls
mise en œuvre. De ces 4 trouvés sur un système GNU / Linux ici:
$ touch a; touch c; touch b; stat -c %y a c b
2018-01-10 12:52:21.367640342 +0000
2018-01-10 12:52:21.371640148 +0000
2018-01-10 12:52:21.375639952 +0000
GNUls
, celui du projet GNU (de la collection GNU coreutils ). C'est celui que l'on trouve généralement sur les systèmes GNU comme Debian (noyaux Linux ou kFreeBSD), Cygwin ou Fedora.
$ gnu-ls -rt
a c b
Le ls
du Heirloom Toolchest , un port d'outils OpenSolaris:
$ heirloom-ls -rt
a b c
Le ls
de la collection Open Source AT&T , éventuellement intégré ksh93
. Un autre avec pas mal d'extensions fantaisistes:
$ ast-ls -rt
a c b
$ PATH=/opt/ast/bin:$PATH ksh93 -c 'type ls; ls -rt'
ls is a shell builtin version of /opt/ast/bin/ls
a c b
busybox (comme trouvé (ou un dérivé) sur la plupart des systèmes Linux (généralement intégrés)):
$ busybox ls -rt
c b a
Donc, parmi ceux-ci, GNU et ast ls
considèrent la deuxième partie fractionnaire. Les autres retombent dans la comparaison lexicale des derniers fichiers modifiés dans la même seconde. Seule la boîte occupée fait ls
honneur à la -r
.
Dans mes tests, FreeBSD ls
prend également en charge la précision en moins d'une seconde (à condition qu'ils soient activés au niveau VFS, voir vfs.timestamp_precision
sysctl).
zsh
Les globs (avec le om
qualificatif glob à commander au moment de la modification, Om
pour l'ordre inverse) prennent également le temps plein:
$ echo *(Om)
a c b
[ file1 -nt file2 ]
, lorsqu'ils sont pris en charge, prennent généralement en charge la granularité inférieure à la seconde .
Stéphane Chazelas
la source
En ce qui concerne l'
ls
implémentation de GNU , l'exécutionls -l
ordonnera les fichiers par ordre alphabétique etls -lt
ordonnera les fichiers par ordre de modification, le plus récent en premier, avec la plus grande précision prise en charge par le système de fichiers sous-jacent. Vous pouvez le vérifier en utilisant l'--full-time
option.Donc, pour répondre à votre question, oui, dans la plus large mesure possible, mais uniquement lorsque vous utilisez
-t
(sinon, il sera par défaut alphabétique), et utilisez une implémentation qui la prend en charge (voir la réponse de Stéphane pour plus de détails). Par exemple,ext4
peut prendre en charge la précision en nanosecondes, étant donné des inodes suffisamment grands pour stocker les données d'horodatage requises.la source
vous pouvez vérifier que si vous comparez la sortie de
et
le tri n'a rien d'arbitraire.
la source
Oui, il sera.
Pour tester, créez deux fichiers avec un petit décalage horaire:
Vérifiez les temps de modification:
La liste utilisera une telle différence:
Avec
--full-time
la différence sera claire.la source
bb
et à l'aa
envers.