Unix: Quelle est la résolution temporelle de ls -t?

J’utilise ls -t pour traiter mes fichiers par ordre de temps où ls -t fait référence à l’heure de modification.

Ma question est la suivante: quelle est la précision de cette option? Secondes, millisecondes ou nanosecondes?

Cela dépend du système d’exploitation et du système de fichiers utilisé, il n’y a donc pas de réponse définitive à cette question sans spécifier un environnement précis.

Par exemple, FAT12 / 16/32 a une résolution d’horodatage de création de 10 ms, mais la résolution de l’horodatage de modification n’est que de 2 s. Donc, même si le système d’exploitation prend en charge une résolution de timer plus élevée (probablement ;-), vous n’obtiendrez pas d’horodatages plus précis que cette résolution 2s.

D’un autre côté, si vous avez un système de fichiers avec une résolution d’horodatage de 1 nanoseconde (comme ext4, btrfs, XFS ou ZFS) mais que la timer du kernel de votre système d’exploitation n’a qu’une résolution de 1 milliseconde, c’est là encore le facteur limitant. de 1 milliseconde.

Pour une liste de certaines résolutions de système de fichiers, consultez l’article de Wikipedia “Comparaison des systèmes de fichiers” . Il n’est pas complet et ne répertorie que la résolution maximale qui pourrait être trompeuse, comme on peut le voir avec FAT12 / 16/32 qui ont des résolutions différentes pour les horodatages de création (10ms) et de modification (2s).