Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/03/2009, à 18:43

Abee

Comment exclure un répertoire d'une commande find

Bonjour à tous,
J'utilise la commande find / > pre.txt pour générer une liste complète de tout les fichiers de mon DD dans un fichier nommé pre.txt.
Comment faire pour que find ne "regarde" pas certains répertoire comme par exemple /Users/xxxx/Download ?
Merci,
Abee

Hors ligne

#2 Le 08/03/2009, à 18:47

sebk

Re : Comment exclure un répertoire d'une commande find

Bonjour,

J'utilise un grep -v pour faire ça :

find / | grep -v "/Users/xxxx/Download" > pre.txt

Mais il y a peut-être d'autres méthodes


Iceberg Project : www.iceberg-linux.net

Hors ligne

#3 Le 08/03/2009, à 18:58

Yannick_LM

Re : Comment exclure un répertoire d'une commande find

Euh ...

man find a écrit :

--exclude=GLOB
              Skip  files  whose  base  name  matches  GLOB  (using  wildcard
              matching).   A  file-name  glob  can  use  *,  ?, and [...]  as
              wildcards, and \ to quote a  wildcard  or  backslash  character
              literally.
       --exclude-dir=DIR
              Exclude  directories  matching  the  pattern DIR from recursive
              searches.

Des fois, faut savoir lire les pages de manuel roll

donc

  find /media/DD --exclude-dir="Downloads"

ça doit marcher


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne

#4 Le 08/03/2009, à 23:35

Abee

Re : Comment exclure un répertoire d'une commande find

Merci pour vos réponse.
Pour man find, je suis désolé mais je n'ai pas l'option --exclude !
Voici ce que j'ai essayé :

iMac-xxxx:~ vincent$ sudo find /Users/xxxx/Downloads/ --exclude-dir="/Users/xxxx/Downloads/EEEPC" > pretest
find: --exclude-dir=/Users/vincent/Downloads/EEEPC: unknown option

Bref, cela n'a pas l'air de fonctionner.

Y-a-t-il une erreur dans mon terminal ?

Abbe

Hors ligne

#5 Le 09/03/2009, à 11:22

Alain.g

Re : Comment exclure un répertoire d'une commande find

Bonjour

Extrait du manuel :

Pour ignorer une arborescence complète de répertoires, utilisez l'option -prune plutôt que de vérifier chaque fichier de l'arbre. Par exemple, pour ignorer le répertoire `src/emacs' et tous ses sous-répertoires, tout en affichant le nom de tous les autres fichiers, faites quelque chose comme :

find . -path './src/emacs' -prune -o -print

sinon éventuellement avec wholename (mais préférer -prune, plus rapide) :

find /Users/xxxx/Downloads/ ! -wholename "/Users/xxxx/Downloads/EEEPC*"

Dernière modification par Alain.g (Le 09/03/2009, à 11:30)


Xubuntu Karmic !

Hors ligne

#6 Le 10/03/2009, à 00:03

Abee

Re : Comment exclure un répertoire d'une commande find

J'ai essayé avec :

sudo find /Users/vincent/Downloads/ -path '/Users/xxxx/Downloads/EEEPC/' -prune -o -print > postest

sudo find /Users/vincent/Downloads/ -path '/Users/xxxx/Downloads/EEEPC' -prune -o -print > postest

Cela ne change rien il détaille quand même le répertoire EEEPC.   Il doit y avoir une erreur dans ma ligne de commande ???:(

Merci,

Hors ligne

#7 Le 10/03/2009, à 00:05

Abee

Re : Comment exclure un répertoire d'une commande find

J'ai essayé aussi :

find /Users/xxxx/Downloads/ ! -wholename "/Users/xxxx/Downloads/EEEPC*" > pretest
find: -wholename: unknown option

??  Je ne dois pas être doué ...

Hors ligne

#8 Le 10/03/2009, à 00:08

AnsuzPeorth

Re : Comment exclure un répertoire d'une commande find

tu as un dossier xxxx ?
peut etre que le xxxx etait à remplacer par Vincent ?


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#9 Le 10/03/2009, à 00:43

Abee

Re : Comment exclure un répertoire d'une commande find

Au début je remplacais vincent par xxxx par confidentialité mais j'ai laissé passer un vincent...Mais dans la ligne de commande c'était correct !
Merci,
Abee

Hors ligne

#10 Le 10/03/2009, à 01:07

Alain.g

Re : Comment exclure un répertoire d'une commande find

Si ta version de find n'a aucune de ces options, dans ce cas utilise grep comme indiqué dans la première réponse.

Par curiosité, que donne : find --version


Xubuntu Karmic !

Hors ligne

#11 Le 10/03/2009, à 19:36

Abee

Re : Comment exclure un répertoire d'une commande find

Voilà :
find --version
find: illegal option -- -
find: illegal option -- v
find: illegal option -- e
find: illegal option -- r
find: illegal option -- i
find: illegal option -- o
find: illegal option -- n
usage: find [-H | -L | -P] [-EXdsx] [-f file] [file ...] [expression]


???

Hors ligne

#12 Le 10/03/2009, à 20:03

Alain.g

Re : Comment exclure un répertoire d'une commande find

Essaie avec un seul tiret...
Je voudrais avoir des infos sur la version que tu possèdes.


Xubuntu Karmic !

Hors ligne

#13 Le 10/03/2009, à 20:31

Abee

Re : Comment exclure un répertoire d'une commande find

Cela ne marche pas :
find -version
find: illegal option -- v
find: illegal option -- e
find: illegal option -- r
find: illegal option -- i
find: illegal option -- o
find: illegal option -- n
usage: find [-H | -L | -P] [-EXdsx] [-f file] [file ...] [expression]
??

Hors ligne

#14 Le 13/09/2016, à 20:52

patrick L

Re : Comment exclure un répertoire d'une commande find

find ~ \( -type f -name "*" -print  -o -path \*/.\* -prune -o -path \*Téléchagements\* -prune \)

find la commande find
\(  et \)  pour encadrer les conditions.
-name  le fichier à rechercher 
-print  on affiche
-prune    on  supprime 
-path  le chemin du fichier
-path \*/.\*  pour eviter que le shell remplace les *  et envoyer le caractere '*' dans la commande.   sinon le shell va remplacer * par tout caractere.
-o   commande logique or   

sudo find /Users/vincent/Downloads/ \( -name "*" -print -o -path \*/Users/xxxx/Downloads/EEEPC/\* -prune \) 

ca doit marcher.

Hors ligne

#15 Le 01/01/2022, à 12:48

LucMorizur

Re : Comment exclure un répertoire d'une commande find

patrick L a écrit :
sudo find /Users/vincent/Downloads/ \( -name "*" -print -o -path \*/Users/xxxx/Downloads/EEEPC/\* -prune \) 

ca doit marcher.

Ça fonctionne smile ! Merci beaucoup patrick L !


Ubuntu Studio sur Acer Aspire V3-575G d'occasion... ça le fait...

Hors ligne