[Linux-31] exclusions dans find
jpcas
jpcas at free.fr
Mar 18 Juin 14:52:56 CEST 2013
Le 18/06/2013 14:17, jdd a écrit :
> Le 18/06/2013 13:12, jpcas a écrit :
>
>> Ben déjà si ce n'est que les répertoires qui doivent être exclus, cibler
>> uniquement les fichiers avec "-type f" ou "! -type d", non ?
>
> non, c'est juste un exemple sur le plus évident
>
> jdd
>
Ben alors il te faut construire à la volée une liste d'après un fichier.
Voilà un exemple :
# L'arborescence (seuls les fichiers "titi" et "toto" sont vides) :
$ tree -Fh
.
├── [ 15] fich
├── [ 60] rep1/
│ └── [ 0] toto
├── [ 40] rep2/
├── [ 40] rep3/
├── [ 0] titi
└── [ 8] tutu
3 directories, 4 files
# Le résultat attendu en omettant les répertoires vides :
$ find . -empty ! -type d
./titi
./rep1/toto
# La syntaxe qu'attend find pour omettre certains motifs :
$ find . -empty ! \( -name rep2 -o -name rep3 -o -name fich \)
./titi
./rep1/toto
# Le contenu du fichier d'exclusion (fich) :
$ cat fich
rep2
rep3
fich
# La moulinette avec "sed" :
$ find . -empty ! \( -name $(sed ':z;N;$! bz;s/\n/ -o -name /g' fich) \)
./titi
./rep1/toto
Plus d'informations sur la liste de diffusion Linux-31