Globbing avec ls pour trouver tous les fichiers correspondant à un certain motif

Je suis en train d'essayer de localiser tous les fichiers PDF dans un dossier et un sous-dossier, dans le terminal, plutôt que dans un script. Je suis aussi tout à fait nouveau pour linux, donc m'excuser si j'ai oublié quelque chose d'évident, ou peut-être vital pour diagnostiquer mon problème particulier.

Je suis en utilisant bash 4.1.5(1)-release (i486-pc-linux-gnu), et fait quelques piquer sur sur google à propos de glob et extglob expressions, et il semble que la syntaxe que je devrais utiliser est

$ ls **.pdf

Ceci, cependant, ne trouve rien, puisqu'il n'existe pas de fichier correspondant au modèle *.pdf dans le dossier en cours ./; il semble vouloir lire ** comme *:

ls: cannot access **.pdf: No such file or directory

Il y a des fichiers Pdf ailleurs, dans les sous-dossiers entre 1 et 5 de profondeur (en particulier dans chaque sous-dossier 1-profond), dont certaines que je peut voir en vérifiant avec

$ ls */*.pdf

Donc, ls semble fonctionner correctement. Le manuel semble ne pas être très utile, étant donné que tout ce que je pouvais voir qui pourrait être de n'importe quel usage nous en appelant ls avec le -R drapeau, ce qui ne permet pas de résoudre le problème dans l'un des cas ci-dessus.

J'ai essayé d'utiliser extglob modèles (en prenant soin de les tourner avec shopt). Je peux voir ma profondeur-1 les fichiers avec ls */*?(.)pdfmais je ne peux pas voir quoi que ce soit avec ls .*(/*)pdf ou ls .*(/*).pdfmême à partir d'un sous-répertoire où sont les fichiers Pdf.

J'ai lu ailleurs (en référence à la .gitignore fichier dans un dépôt git) que le ** modèle ne fonctionne pas pour tout le monde.

- Ce que cela pourrait être un effet sur moi, et comment pourrais-je y remédier (idéalement sans privilèges de super-utilisateur)? Cela pourrait-il (ou quelques problème) être aussi une incidence sur le extglob fonctionnalité?

source d'informationauteur Nick Loughlin