6
votes

Commandez des fichiers par création de temps à la milliseconde à bash

Je dois créer une liste de fichiers situés sur mon disque dur dans l'ordre de leur arrivée sur le disque dur. Pour ce faire, j'ai utilisé ce qui suit: xxx

qui répertorie tous les fichiers de la date de date / heure, cependant, il ne les ordonne que le second près. Le problème ici est qu'il existe des milliers de fichiers et de temps en temps, quelques-uns d'entre eux viennent groupés ensemble dans la même seconde. J'ai besoin de la commande correcte exacte . Je suppose que le moyen le plus simple de le faire est d'obtenir le temps de création au Milli (ou peut-être nano). Pour ce faire, j'ai essayé d'utiliser ce qui suit: xxx

pour examiner l'heure de modification, mais elle affiche toujours heure: minute: second.00000000000.

Y a-t-il un moyen de faire cela? Merci, Rik


0 commentaires

3 Réponses :


2
votes

Vous devrez probablement écrire votre propre commande Stat, à l'aide du Stat (2)


0 commentaires

3
votes

La précision dépend du système de fichiers que vous utilisez, mais même avec un système de fichiers de précision élevé tel que EXT4, la mise en oeuvre standard de STAT utilise Time_T qui a une résolution de 1 seconde.

Si vous avez accès à la source du programme cracher tous ces fichiers, essayez de définir un horodatage dans le nom de fichier de fichier, puis trier le nom de fichier plutôt que le temps de modification.


0 commentaires

2
votes

Je ne suis pas sûr que cela soit possible. Mon raisonnement:

Si vous regardez le Stat () Appel de fonction, vous voyez qu'il renvoie une structure contenant des informations sur un fichier. L'un de ses membres est celui-ci: xxx

et si vous regardez la structure TIME_T, eh bien, Wikipedia dit ce :

systèmes compatibles UNIX et POSIX mettre en œuvre TIME_T comme un entier ou type réel flottant (typiquement a 32- ou 64 bits entier) qui représente le nombre de secondes depuis Le début de l'époque Unix ...

Ce qui signifie que le temps Stat () est en secondes, pas de millisecondes. Je n'ai pas regardé comment chaque inode stocke des informations de fichier, mais cela pourrait ne pas stocker d'informations jusqu'à la milliseconde.

Une alternative peut être d'ajouter la valeur du moulin / microseconde au nom de fichier lui-même quand ils sont créé et les commander de cette façon?


0 commentaires