#1 Le 08/03/2009, à 17: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, à 17: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, à 17:58
- Yannick_LM
Re : Comment exclure un répertoire d'une commande find
Euh ...
--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
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, à 22: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, à 10: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, à 10:30)
Xubuntu Karmic !
Hors ligne
#6 Le 09/03/2009, à 23: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 09/03/2009, à 23: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 09/03/2009, à 23: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 09/03/2009, à 23: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, à 00: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, à 18: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, à 19: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, à 19: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, à 19: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, à 11:48
- LucMorizur
Re : Comment exclure un répertoire d'une commande find
sudo find /Users/vincent/Downloads/ \( -name "*" -print -o -path \*/Users/xxxx/Downloads/EEEPC/\* -prune \)
ca doit marcher.
Ça fonctionne ! Merci beaucoup patrick L !
Ubuntu Studio sur HP Elitebook 850 G5 d'occasion... ça le fait... (Si ce n'est l'écran en 4K qui nécessite par moments de chausser les lunettes et se coller à 10 cm :-/ ...)
Hors ligne