[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

résultat bizarre de 'find ... -path ... -prune ...' dans une fonction dans .bashrc



Bonsoir,

Je poste dans cette liste parce que j'utilisais cette fonction sous FreeBSD+tcsh et qu'après recherches, je ne comprends pas ce qui se passe sous debian+bash

J'utilise une fonction dans '.bashrc' basée sur 'find' et utilisant le paramètre '-prune' pour simplifier des recherches en excluant un répertoire (/mnt ou /media en tête).

Or l'exclusion du répertoire ne fonctionne pas lorsqu'on utilise la fonction alors que cela fonctionne en lançant directement 'find' en reprenant strictement la syntaxe utilisée dans la fonction (grâce à la sortie de 'echo "> $EXEC"'

function fprune {
INFO="recherche [ $3 ] dans le repertoire [ $1 ] en excluant le repertoire [ $2 ]"
   EXEC="find $1 -path '$2' -type d -prune -o -name $3 -type f -print"
   echo "> $INFO"
   echo "> $EXEC"
   $EXEC
}

Par exemple : pour rechercher les fichiers nommés 'smart' dans le répertoire '/etc' en excluant le répertoire '/etc/default'
(après un 'su' pour être sûr que ce n'est pas un problème de droits)

* en utilisant la fonction, le répertoire '/etc/default' est parcouru:

# fprune /etc /etc/default smart*
> recherche [ smart* ] dans le repertoire [ /etc/ ] en excluant le repertoire [ /etc/default ] > find /etc -path '/etc/default' -type d -prune -o -name smart* -type f -print
/etc/init.d/smartmontools
/etc/smartd.conf
/etc/default/smartmontools

* en utilisant find directement, le répertoire '/etc/default' est bien exclu :

# find /etc -path '/etc/default' -type d -prune -o -name smart* -type f -print
/etc/init.d/smartmontools
/etc/smartd.conf


quelq'un aurait-il une piste ou faut-il que je poste dans une liste orientée 'scripts' ?
merci d'avance


Reply to: