Comment obtenir des fichiers trouvés par ligne de commande '' rechercher '' classés par date de modification dans OS X?

10

À l'aide du terminal Mac OS X, comment puis-je écrire une findcommande qui ordonne les résultats par date de modification (la plus récente en premier)?

Il y a déjà des questions similaires, mais elles font référence à GNU findet POSIX, mais je ne sais pas si Mac OS X est GNU ou POSIX ou quelque chose d'autre.

zadam
la source

Réponses:

12

OS X est entièrement compatible POSIX .

Quelque chose comme ça devrait faire:

find . -type f -name "*.txt" -print0 | xargs -0 ls -tl

Quelques notes:

  • L' -toption dans lsva trier par mtime.
  • xargsest utilisé pour passer les noms de fichiers comme argument à ls. Notez que vous devez utiliser -print0in findet -0in xargssi vous avez des fichiers avec des espaces dans leurs noms. En outre, le nombre maximal d'arguments est limité par la ARG_MAXvariable . Pour savoir combien il en existe, entrez getconf ARG_MAX.
  • Vous pouvez fournir -rpour inverser l'ordre de tri (→ les fichiers les plus anciens en premier)
  • L’autre findet les lsoptions sont, comme d’habitude, décrits dans les manuels ( man findou man ls).
slhck
la source
ls -ltrinverser l'ordre.
Daniel Beck
Xe ne les fera que trier dans des groupes de caractères (légèrement inférieurs à) ARG_MAX, ainsi, bien sûr.
JdeBP
Oui, merci pour l'addition @JdeBP et Daniel. getconf ARG_MAXmontrera ce nombre.
Slhck
ah mon problème maintenant est que j'utilise cette commande dans un script de script et que j'utilisais le résultat pour lire le contenu de ce fichier. Mais maintenant, le résultat contient des informations sur la date, et pas seulement le nom du fichier: le script shell "find / Users / akw / Bibliothèque / Preferences / ByHost / -name 'com.apple.windowserver *' -print0 | xargs -0 ls -tl | head -1 "retourne ceci ->" -rw ------- @ 1 akw staff 5512 Juin 19 07:52 /Users/akw/Library/Preferences/ByHost//com.apple.Windowserver.1FC3A841-2C0C- 5F48-B746-1DEE064F6D12.plist "
vendredi
@zadam utilise alors ls -tau lieu de ls -tl. Le -lvous donne une longue liste, y compris les dates. Je ne savais pas ce que vous essayiez de faire exactement, alors je suis désolé pour cela - je pensais que vous aimeriez le voir mtimeaussi.
Slhck