Fichiers de moins de 24h triés par date ?

Fichiers de moins de 24h triés par date ? - Shell/Batch - Programmation

Marsh Posté le 07-07-2011 à 15:04:02    

Comment feriez-vous pour récupérer dans un répertoire tous les fichiers créés il y a moins de 24h, et les trier par date de création ?
 
:jap:

Reply

Marsh Posté le 07-07-2011 à 15:04:02   

Reply

Marsh Posté le 08-07-2011 à 00:03:29    

Titprem a écrit :

Comment feriez-vous pour récupérer dans un répertoire tous les fichiers créés il y a moins de 24h, et les trier par date de création ?
 
:jap:


Code :
  1. find repertoire -mtime -1 -print |while read f
  2. do
  3.    ls -lt repertoire/* |grep "$f"
  4. done


   


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 08-07-2011 à 09:30:32    

L'idée est intéressante, mais ça reste assez coûteux si le répertoire est gros. :)
 
Mais j'ai trouvé quelque chose qui me convient mieux, même si ce n'est peut-être pas parfait (je mets un spoiler pour ceux qui souhaitent chercher un peu) :
 

Spoiler :

find $dir -maxdepth 1 -type f -mtime -1 -printf '%T@ %p\n' | sort -k 1n | sed "s/^[0-9]* //"


 
Si vous avez d'autres solutions, je suis preneur !

Message cité 1 fois
Message édité par Titprem le 08-07-2011 à 11:18:18
Reply

Marsh Posté le 08-07-2011 à 10:37:47    

Noter quand même que ctime ne correspond pas que à creation time, un chmod ou un chown l'affecte aussi.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 08-07-2011 à 11:18:25    

Ouaip, je corrige.

Reply

Marsh Posté le 09-07-2011 à 01:30:32    

Titprem a écrit :

L'idée est intéressante, mais ça reste assez coûteux si le répertoire est gros. :)


Hélas oui. Deux boucles imbriquées (même si la seconde est cachée dans le grep) qui traitent le même ensemble de n éléments => n² itérations !!!
 

Titprem a écrit :

Mais j'ai trouvé quelque chose qui me convient mieux, même si ce n'est peut-être pas parfait (je mets un spoiler pour ceux qui souhaitent chercher un peu) :
 

Spoiler :

find $dir -maxdepth 1 -type f -mtime -1 -printf '%T@ %p\n' | sort -k 1n | sed "s/^[0-9]* //"



Très classe  :jap:


Message édité par Sve@r le 09-07-2011 à 01:31:12

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed