Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

aide commande find

5 réponses
Avatar
François Patte
Bonjour,

Je cherche à exclure de la recherche par "find" tous les fichiers et
répertoires commençant par un ".".

man find, recherche google, ....

Trouvé des exemples comme celui-là:

find . \! -name '.*' -print

marche pas!

Ou ai-je loupé quelque chose?

Merci.

--
François Patte
Université Paris 5 - Paris

5 réponses

Avatar
Fabien LE LEZ
On Mon, 04 Jun 2007 11:13:13 +0200, François Patte :

Je cherche à exclure de la recherche par "find" tous les fichiers et
répertoires commençant par un ".".


Faute de mieux :

find |grep -v "/."

Avatar
Nicolas George
François Patte
wrote in message <4663d7aa$0$27380$:
Je cherche à exclure de la recherche par "find" tous les fichiers et
répertoires commençant par un ".".

man find, recherche google, ....

Trouvé des exemples comme celui-là:

find . ! -name '.*' -print

marche pas!

Ou ai-je loupé quelque chose?


Ça marche très bien, si : si tu regardes bien, tu n'as dans le résultat
aucun fichier ou répertoire dont le nom commence par un point. Ce que tu as,
en revanche, ce sont les fichiers et les répertoires dont le nom ne commence
pas par un point, mais qui sont eux-mêmes dans un répertoire dont le nom
commence par un point.

Par exemple, chez moi, un find bête :

./b64
./.jtalk
./.jtalk/socket

Un find avec ta ligne de commande :

./b64
./.jtalk/socket

Tu remarqueras que le répertoire .jtalk lui-même n'est pas affiché.

Manifestement, ce que tu veux, c'est non seulement ne pas afficher les
répertoire dont le nom commence par un point, mais aussi empêcher la
descente. C'est -prune qu'il faut :

find $HOME -maxdepth 3 -name '.?*' -prune -o -print

Note que j'ai mis « .?* » pour qu'on puisse descendre dans . au départ quand
même.

Avatar
François Patte
François Patte
wrote in message <4663d7aa$0$27380$:
Je cherche à exclure de la recherche par "find" tous les fichiers et
répertoires commençant par un ".".

man find, recherche google, ....

Trouvé des exemples comme celui-là:

find . ! -name '.*' -print

marche pas!

Ou ai-je loupé quelque chose?


Ça marche très bien, si : si tu regardes bien, tu n'as dans le résultat
aucun fichier ou répertoire dont le nom commence par un point. Ce que tu as,
en revanche, ce sont les fichiers et les répertoires dont le nom ne commence
pas par un point, mais qui sont eux-mêmes dans un répertoire dont le nom
commence par un point.

Par exemple, chez moi, un find bête :

./b64
./.jtalk
./.jtalk/socket

Un find avec ta ligne de commande :

./b64
./.jtalk/socket

Tu remarqueras que le répertoire .jtalk lui-même n'est pas affiché.

Manifestement, ce que tu veux, c'est non seulement ne pas afficher les
répertoire dont le nom commence par un point, mais aussi empêcher la
descente. C'est -prune qu'il faut :

find $HOME -maxdepth 3 -name '.?*' -prune -o -print

Note que j'ai mis « .?* » pour qu'on puisse descendre dans . au départ quand
même.


Oui merci! C'est ça. J'étais un peu confusionné (?!) de voir encore des
"." dans la liste des fichiers....

--
François Patte
Université Paris 5 - Paris


Avatar
Fabien LE LEZ
On Mon, 04 Jun 2007 17:27:24 +0200, François Patte
:

[...]


T'es vraiment obligé de recopier 40 lignes de citation juste pour
rajouter deux lignes :-(

Je t'invite à lire
<http://www.usenet-fr.net/fr.usenet.reponses/usenet/repondre-sur-usenet.html>
d'urgence.

Avatar
François Patte
On Mon, 04 Jun 2007 17:27:24 +0200, François Patte
:

[...]


T'es vraiment obligé de recopier 40 lignes de citation juste pour
rajouter deux lignes :-(

Je t'invite à lire
<http://www.usenet-fr.net/fr.usenet.reponses/usenet/repondre-sur-usenet.html>
d'urgence.


Pourquoi on parle des "trol" qui mobilisent parfois 200 à 300 messages
dans ce mode d'emploi (que je connaissais d'ailleurs mais, je ne suis
pas parfait moi et il m'arrive de faire des fautes... )

bibises.

--
François Patte
Université Paris 5 - Paris