web-dev-qa-db-fra.com

trouver: prédicat inconnu

Ce n'est probablement pas une question Ubuntu en tant que telle, mais une question sous Linux, espère toujours qu'un utilisateur de Linux pourra m'aider à comprendre cela.

J'essaie d'utiliser la commande find pour rechercher des fichiers dans une arborescence de répertoires.

Malheureusement, certains fichiers sont nommés en commençant par un tiret, comme -000.jpg, -002.jpg, 00n.jpg et ainsi de suite. Cependant, chaque fois que la commande localise l'un des fichiers ainsi nommés, elle interrompt simplement le processus et se plaint de la manière suivante:

find: unknown predicate `-001.jpg'

ou quel que soit le nom du fichier commençant par un tiret.

Il me semble que, d'une manière ou d'une autre, la commande find interprète le nom du fichier résultant comme un argument, mais je n'ai pas trouvé de façon de contourner ce comportement.

Merci d'avance de partager votre sagesse.

4
yorch

Assurez-vous de citer les modèles que vous fournissez à find, sinon le Shell pourra les développer s'il existe des fichiers correspondants dans le répertoire en cours.

find /some/dir -name *.jpg   # bad
find /some/dir -name "*.jpg" # good

Voir http://mywiki.wooledge.org/UsingFind .

7
geirha