Trouve de façon récursive tous les fichiers qui correspondent à un certain modèle

J'ai besoin de trouver (ou, plus précisément, comte de) tous les fichiers qui correspondent à ce modèle:

*/foo/*.doc

Où le premier caractère générique astérisque comprend un nombre variable de sous-répertoires.

  • A-t-elle à être bash? zsh pouvez faire cela en utilisant la syntaxe ls **/foo/*.doc.
  • Alastair, merci pour la suggestion. Je n'étais pas au courant de zsh et son double astérisque syntaxe. Fait intéressant, il semble que le résultant élargi argument la liste est trop longue pour ls (approx. 6000 noms de fichiers) et donne une erreur.
  • Bash v4 prend également en charge la ** récursive glob.
  • Une commande interne comme echo évite la ARG_MAX problème (liste d'arguments trop longue). Vous ne devriez pas utiliser ls dans les scripts.
  • Bash v4 supporte ** récursive glob, mais vous devez d'abord shopt -s globstar. Voir tiswww.case.edu/php/chet/bash/bashref.html#The-Shopt-Builtin
InformationsquelleAutor pw222 | 2014-04-21