A noter que la syntaxe citée plus haut avec -prune est probablement bien meilleure dans ce cas précis: les répertoires ignorés ne sont pas parcourus, alors qu'avec ma proposition, ils le sont (bien que leur contenu soit totalement ignoré).
'.*/\..*/..*'
guillemets simples: pour que le shell n'évalue rien à l'intérieur.
On recherche un motif contenant xxxxx/.xxxxx/xxxxx (chaque xxxx étant n'importe quel caractère, y compris aucun caractère). En gros, c'est un nom de répertoire commençant par un point. Un nom de répertoire est toujours encadré par des slashes.
Dans une expression régulière, au lieu d'écrire xxxxx, on écrit .* ce qui indique "n'importe quel caractère (le point), n'importe quel nombre de fois (l'étoile), y compris zéro fois".
Pour indiquer qu'on recherche le caractère 'point', il faut l'échapper car il a une signification particulière. Donc \. pour rechercher un point.
L'expression pourrait être améliorée par '.*/\..*/.*' car sinon on indique qu'on élimine les noms de répertoires suivis d'un nom de fichier contenant au moins un caractère, ce qui est forcément le cas. '..*' indique "n'importe quel caractère (le point) suivi de n'importe quel caractère (le second point) zéro ou x fois (l'étoile). C'est la même chose que '.+' qui indique "n'importe quel caractère, au moins une fois". Mais là, pas besoin de préciser qu'il faut au moins un caractère.
[^] # Re: Pas très intuitif :-)
Posté par Kerro . En réponse au message ignrorer des répertoire avec find ?. Évalué à 4.
'.*/\..*/..*'
guillemets simples: pour que le shell n'évalue rien à l'intérieur.
On recherche un motif contenant xxxxx/.xxxxx/xxxxx (chaque xxxx étant n'importe quel caractère, y compris aucun caractère). En gros, c'est un nom de répertoire commençant par un point. Un nom de répertoire est toujours encadré par des slashes.
Dans une expression régulière, au lieu d'écrire xxxxx, on écrit .* ce qui indique "n'importe quel caractère (le point), n'importe quel nombre de fois (l'étoile), y compris zéro fois".
Pour indiquer qu'on recherche le caractère 'point', il faut l'échapper car il a une signification particulière. Donc \. pour rechercher un point.
L'expression pourrait être améliorée par '.*/\..*/.*' car sinon on indique qu'on élimine les noms de répertoires suivis d'un nom de fichier contenant au moins un caractère, ce qui est forcément le cas. '..*' indique "n'importe quel caractère (le point) suivi de n'importe quel caractère (le second point) zéro ou x fois (l'étoile). C'est la même chose que '.+' qui indique "n'importe quel caractère, au moins une fois". Mais là, pas besoin de préciser qu'il faut au moins un caractère.
J'espère que c'est clair :-)