find la command sous linux

On m'a dit par mon ami que l'on peut travailler avec -r pour find des files récursivement dans les directorys et sous-directorys. S'il vous plaît dites-moi l'erreur dans la déclaration donnée, il ne fonctionne pas

find / -type f -r -name "abc.txt" 

La raison pour laquelle cela ne fonctionne pas est que find n'a pas d'option -r . S'il est vrai que pour de nombreux programmes le drapeau -r signifie récursif, ce n'est pas le cas pour tous et ce n'est pas le cas pour find . Le travail de find est de searchr des files et des directorys, ce n'est pas très souvent que vous ne voulez pas qu'il soit récursif.

Vous pouvez vérifier les options de la plupart des programmes avec la command man . Par exemple, l' man find . Depuis le manuel de search, est énorme, vous pouvez searchr l'option -r :

 $ man find | grep -w -- -r 

Le – indique simplement à grep d'arrêter de lire les options, sans cela, le -r serait passé en tant qu'option à grep. En outre, vous pouvez effectuer une search dans la page de manuel en appuyant sur / puis en écrivant ce que vous voulez searchr, puis entrez.

Cette command ne renvoie rien, compare-la avec celle qui search dans le manuel de cp :

 $ man cp | grep -w -- -r -R, -r, --recursive 

Puisque la find est toujours récursive, elle possède l'inverse, un indicateur qui vous permet de choisir le nombre de sous-directorys dans lesquels il doit se find :

  -maxdepth levels Descend at most levels (a non-negative integer) levels of direc‐ tories below the command line arguments. -maxdepth 0 means only apply the tests and actions to the command line arguments. -mindepth levels Do not apply any tests or actions at levels less than levels (a non-negative integer). -mindepth 1 means process all files except the command line arguments. 

Ainsi, chaque fois que vous avez des doutes sur une command, lisez sa page de manuel car vous ne savez jamais ce qu'une option particulière pourrait faire. Par exemple:

 $ man sort | grep -w -- -r -r, --reverse $ man mount | grep -w -- -r, -r, --read-only $ man awk | grep -A 8 -w -- -r -r --re-interval Enable the use of interval expressions in regular expression matching (see Regular Expressions, below). Interval expressions were not traditionally available in the AWK language. The POSIX standard added them, to make awk and egrep consistent with each other. They are enabled by default, but this option remains for use with --traditional. $ man sed | grep -w -- -r -r, --regexp-extended $ man xterm | grep -w -- -r -r This option indicates that reverse video should be simulated by swapping the foreground and background colors. 

Vous avez l'idée.

find est déjà récursif, vous n'avez pas besoin du -r