2013-05-07 6 views
0

Je ne sais pas quelle erreur je fais, mais find ne retourne rien. Quel est le problème avec ma syntaxe? J'ai consulté plusieurs ressources en ligne et ma syntaxe semble identique aux commandes suggérées.Bash: problèmes avec trouver - ne pas trouver des fichiers existants

Exemple:

~$ find /home/foo/ -name bar 
~$ sudo find /home/foo/ -name bar 

Les deux renvoient rien, quand il y a des fichiers répondant aux critères de recherche dans le répertoire.

C'est sur Ubuntu 12.

+0

Vous savez, que vous recherchez un fichier nommé ** exactement ** bar, pas foobar ou barfly? Sinon vous auriez besoin de trouver '/ home/foo/-name '* bar *'' –

+0

@EugenRieck Non, je n'ai pas. Les ressources que j'ai utilisées ne mentionnaient pas cela, alors j'ai pensé que c'était juste le nom du fichier. Merci. Postez-le comme une réponse si vous voulez des points. – d0rmLife

Répondre

2

Le point de déclenchement est que find /home/foo/ -name bar recherchera un fichier exactement nommé bar, et ne trouveront pas foobar ou barfly. Si vous souhaitez rechercher une partie du nom de fichier, vous devez utiliser des caractères génériques (la plupart du temps *). Sachez que l'expansion de l'interpréteur de commandes est susceptible de se jouer avec vos motifs génériques, utilisez donc des guillemets: find /home/foo/ -name '*bar*'

Questions connexes