301 votes

"find : paths must precede expression :" Comment puis-je spécifier une recherche récursive qui trouve également les fichiers dans le répertoire actuel ?

J'ai du mal à obtenir trouver pour rechercher des correspondances dans le répertoire courant ainsi que dans ses sous-répertoires.

Quand je cours find *test.c il ne me donne que les correspondances dans le répertoire actuel. (ne regarde pas dans les sous-répertoires)

Si j'essaie find . -name *test.c Je m'attendrais à obtenir les mêmes résultats, mais au lieu de cela, je n'obtiens que les correspondances qui se trouvent dans un sous-répertoire. Quand il y a des fichiers qui devraient correspondre dans le répertoire de travail, il me donne : find: paths must precede expression: mytest.c

Que signifie cette erreur, et comment puis-je obtenir les correspondances à la fois dans le répertoire actuel et dans ses sous-répertoires ?

8 votes

Pour le compte rendu, find de msysgit peut provoquer cette erreur si vous n'entourez pas le motif de guillemets : find . -name "*test.c" . (Au cas où vous choisiriez de le préférer aux différentes options de Windows). find.exe et utiliser à partir de cmd)

2voto

HappyTown Points 1813

Je suis tombé sur cette question alors que j'essayais de trouver plusieurs noms de fichiers que je ne pouvais pas combiner dans une expression régulière comme décrit dans la réponse de @Chris J. Voici ce qui a fonctionné pour moi

find . -name one.pdf -o -name two.txt -o -name anotherone.jpg

-o o -or est un OU logique. Voir Trouver des fichiers sur Gnu.org pour plus d'informations.

Je faisais tourner ça sur CygWin.

0voto

user3291244 Points 1

Trouver . -name 'tar*' a résolu ma question et j'obtiens maintenant ce que je voulais.

/tarar8 ./tar2 ./tar ./tarar7 ./tarar5 ./tarar1.tar ./tarar3 ./tarar6 ./tarar9 ./tarar10 ./tar3 ./tarar2 ./tarar1.tar.bz2 ./tar1 ./tarar4

-1voto

Vikash Singh Points 162

Dans mon cas, il me manquait la queue / dans le chemin.

find /var/opt/gitlab/backups/ -name *.tar

3 votes

Un talon / n'est pas nécessaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X