Juin 142011
find c’est très bien.
on peut tout trouver sur le système grâce à lui.
le seul problème, c’est quand on veut rechercher uniquement dans le répertoire courant.
find étant récursif, il va falloir ruser:
find . \( -type d ! -name . -prune \) -o -type f -print
cette commande va rechercher uniquement dans le répertoire courant.
find va en fait chercher tous les répertoires qui ne sont pas le répertoire courant et les squizzer grâce au paramètre prune.
il va ensuite afficher les fichiers restants.
une petite fonction dont je me sers assez souvent quand je recherche un binaire:
function sepath { echo $PATH |tr ":" "\n" |sort -u |while read L ; do cd "$L" 2>/dev/null && find . \( ! -name . -prune \) \( -type f -o -type l \) 2>/dev/null |sed "s@^\./@@" |egrep -i "${*}" |sed "s@^@$L/@" ; done ; }
cette fonction recherche au travers de la variable $PATH les binaires portant le nom spécifié.
exemple d’utilisation:
$ sepath grep /bin/egrep /bin/fgrep /bin/grep /bin/nisgrep /usr/bin/egrep /usr/bin/fgrep /usr/bin/grep /usr/bin/nisgrep /usr/contrib/bin/zgrep /usr/local/bin/msggrep /usr/local/bin/egrep /usr/local/bin/fgrep /usr/local/bin/grep /usr/local/bin/pcregrep $ sepath ^grep /bin/grep /usr/bin/grep /usr/local/bin/grep
I cannot tell a lie, that really heepdl.