Essayez de citer le caractère générique:
$ find /usr -name \*.sh
ou:
$ find /usr -name '*.sh'
Si vous arrive d'avoir un fichier qui correspond * .sh dans le répertoire de travail courant, le caractère générique sera élargi avant de trouver le voit. Si vous arrive d'avoir un fichier nommé tkConfig.sh dans votre répertoire de travail, la trouver la commande se développerait à:
$ find /usr -name tkConfig.sh
qui trouverait que les fichiers nommés tkConfig.sh. Si vous aviez plus d'un fichier qui correspond * .sh, vous obtiendrez une erreur de syntaxe de trouver:
$ cd /usr/local/lib
$ find /usr -name *.sh
find: bad option tkConfig.sh
find: path-list predicate-list
Encore une fois, la raison est que le caractère générique étend aux deux fichiers:
$ find /usr -name tclConfig.sh tkConfig.sh
Le fait de citer le caractère générique empêche son expansion prématurée.
Une autre possibilité est que/usr ou l'un de ses sous-répertoires soit un lien symbolique. trouver ne pas normalement suivre les liens, vous pourriez avoir besoin du -follow Option:
$ find /usr -follow -name '*.sh'
Est-ce une question SuperUser ? – endolith
Cela convient mieux sur [UnixSE] (http://unix.stackexchange.com/) –