Shell Bash...commande rechercher...des noms avec des caractères génériques...alias ou de la fonction

J'ai longtemps utilisé la commande "rechercher" pour trouver les fichiers et répertoires dans le répertoire courant et tous les sous-répertoires qui correspondent à un modèle:

find . -name "*.txt" -print
find . -name "Bill*" -print

Mais ce que j'aimerais vraiment est un alias ou une fonction qui va bien passer le générique. (J'ai utilisé pour être en mesure de le faire dans les csh, mais maintenant, je suis en utilisant bash.) Si un alias ou une fonction nommée "fn" ont été définis correctement, j'ai pu économiser un peu de temps, juste en tapant:

fn "*.txt"
fn "Bill*"

Idéalement, j'aimerais perdre les guillemets trop, mais je suppose que ne serait pas possible parce que la coquille s'étendre avant d'appeler le "fn".

Tout conseil serait grandement apprécié et reporte le syndrome du canal carpien.... 🙂

RÉSOLU: d'Après la discussion ci-dessous, j'ai mis cela dans mon .bashrc fichier:

fn () {
  find . -name "$1" -print
}

Notez les guillemets autour de l'argument: "$1". Cela peut ensuite être appelée avec plus de guillemets autour du nom de fichier de l'expression:

fn "*.txt"

EDIT: doit avoir des espaces entre le nom de la fonction et la parenthèse, donc
fn () { ... [les œuvres]
fn() { ... [ne fonctionne pas]

Vous aurez besoin d'une fonction, pas un alias, parce que l'argument doit aller au milieu de l'expansion. fn() { find . -name "$1" -print; }
J'ai essayé ce. Mais le "$1" dans la fonction est élargi dans le répertoire courant. Donc, si j'essaie de la fn *.txt dans un répertoire qui contient le fichier a.txt, la commande devient fn a.txt au lieu de la fn *.txt
Aha... La réponse ci-dessous réglé ce problème. J'ai besoin de devis à la fois lors de l'appel et dans la description de la fonction. Merci pour les réponses très rapides!
Vous aurez toujours besoin de citer l'argument de la fonction si elle contient des caractères génériques...mais la fonction comme l'écrit semble fonctionner pour moi quand il est invoqué comme fn "*.c", par exemple. Vous ne pouvez pas éviter de citer l'expression générique dans l'invocation de fn.
Je pourrais avoir amélioré votre solution légèrement. En faisant ma fonction fn() { find . -iname "*$1*" -print} je peux tout type fn word et je trouve tous les fichiers avec mot, Mot, MOT, Mot ou similaires, n'importe où dans le nom de fichier. C'est ce que j'étais après, peut-être que vous avez été au bout de quelque chose de différent.

OriginalL'auteur Rudi | 2013-10-14