MacOS est livré avec la version normale de find
et mdfind
n'est pas un remplacement pour find
.
Si vous souhaitez simplement rechercher tous les fichiers pdf dans le répertoire actuel, vous devriez probablement faire simplement ce qui suit find . -name '*.pdf'
Par défaut mdfind
effectue des recherches sur le contenu et les métadonnées des fichiers, ainsi que sur l'ensemble du disque dur et non sur un seul répertoire. mdfind pdf
trouve des dizaines de milliers de résultats.
Si vous devez utiliser mdfind, parce qu'il est plus rapide, vous disposez de quelques options pour limiter les résultats, par exemple :
mdfind pdf -onlyin .
mdfind 'kMDItemFSName = *.pdf' -onlyin .
mdfind 'kMDItemContentTypeTree = *.pdf' -onlyin .
Utilisez mdls
pour connaître les métadonnées disponibles pour un fichier, et la syntaxe du filtrage est très minimaliste puisqu'elle doit correspondre à l'index de la base de données de votre système de fichiers.
Vous pouvez également mdfind
avec grep
ce qui donne la vitesse de mdfind
et une correspondance regex complète sur le chemin du fichier. Par exemple :
mdfind pdf -onlyin . | grep 'pdf$'
Un dernier avertissement mdfind
ne cherche pas dans votre système de fichiers réel, il ne cherche que dans la base de données des projecteurs qui peut manquer des parties du système de fichiers ou être imprécise. Utilisez find
si vous souhaitez obtenir des résultats fiables. Utilisez mdfind
lorsque vous préférez la rapidité à la précision et lorsque vous avez besoin de termes de recherche compliqués (par exemple, pour trouver tous les fichiers PDF créés dans une plage de dates spécifique et contenant une phrase de texte).