Prototype: findfiles(glob1, glob2, ...)

Return type: slist

Description: Return the list of files that match any of the given glob patterns.

This function searches for the given glob patterns in the local filesystem, returning files or directories that match. Note that glob patterns are not regular expressions. They match like Unix shells:

  • * matches any filename or directory at one level, e.g. *.cf will match all files in one directory that end in .cf but it won't search across directories. */*.cf on the other hand will look two levels deep.
  • ? matches a single letter
  • [a-z] matches any letter from a to z

This function, used together with the bundlesmatching function, allows you to do dynamic inputs and a dynamic bundle call chain.

WARNING: - The current implementation of glob patterns on Windows contains bugs. Therefore, we strongly recommend using the !windows:: class guard expression to safeguard against any use of the function on Windows platforms. Rest assured, we are actively working on resolving these issues and improving its functionality.


  • Brace expansion is not currently supported, {x,y,anything} will not match x or y or anything.


body common control
      bundlesequence => { run };

bundle agent run
      "findtmp" slist => findfiles("/[tT][mM][pP]");
      # or find all .txt files under /tmp, up to 6 levels deep...
      # "findtmp" slist => findfiles("/tmp/**/*.txt");
      "All files that match '/[tT][mM][pP]' = $(findtmp)";


R: All files that match '/[tT][mM][pP]' = /tmp

See also: bundlesmatching(), findfiles_up().