Vous manquez simplement le prédicat qui indique ce que vous recherchez (par exemple -name.)
Pour rechercher dans le répertoire personnel par nom:
find ~ -name \*.pdf
Notez que le caractère générique *doit être échappé afin que le shell ne l'interprète pas avant que find ne lui mette la main dessus. L'utilisation de '*.pdf'et "*.pdf"aura le même effet que \*.pdf.
Pour rechercher sans tenir compte de la casse:
find ~ -iname \*.pdf
Pour élaguer les résultats aux fichiers uniquement (l'expression de nom s'en occupera probablement pour vous, mais juste au cas où vous auriez des répertoires aux noms étranges):
find ~ -type f -iname \*.pdf
Pour vous assurer que find suit les liens symboliques (je veux généralement le faire moi-même lorsque je fais des recherches):
find ~ -follow -type f -iname \*.pdf
Pour faire quelque chose avec les fichiers que vous avez trouvés: vous pouvez les vider dans un fichier en utilisant la redirection stdout (par exemple tack on > filenameà la fin), ou utiliser l' -execoption pour exécuter une commande (voir la page de manuel pour plus de détails). Cependant, ce dernier exécute une commande sur chaque fichier à la fois. il est souvent plus rapide de laisser la xargscommande passer vos fichiers trouvés comme arguments à une autre commande, en une seule fois ou en gros morceaux à la fois. Par exemple, pour les greps ad hoc (mais non indexés) via les fichiers d'en-tête:
find ~ -follow -type f -name \*.h | xargs grep -nH "identifier"
Et une dernière extension, pour que cette dernière commande fonctionne correctement si vous avez des fichiers et des répertoires avec des espaces:
find ~ -follow -type f -name \*.h -print0 | xargs -0 grep -nH "identifier"
findest loin d'être inutile.