3

Given the directory structure:

a/
  b/
    _private/
      notes.txt
    c/
      _3.txt
      1.txt
      2.txt
    d/
      4.txt
    5.txt

How can I write a glob pattern (compatible with npm module glob) which selects the following paths?

a/b/c/1.txt
a/b/c/2.txt
a/b/d/4.txt
a/b/5.txt

Here is what I have tried:

// Find matching file paths inside "a/b/"...
glob("a/b/[!_]**/[!_]*", (err, paths) => {
    console.log(paths);
});

But this only emits:

a/b/c/1.txt
a/b/c/2.txt
a/b/d/4.txt
Lea Hayes
  • 62,536
  • 16
  • 62
  • 111

1 Answers1

3

With some trial and error (and the help of grunt (minimatch/glob) folder exclusion) I found that the following seems to achieve the results that I was looking for:

// Find matching file paths inside "a/b/"...
glob("a/b/**/*", {
    ignore: [
        "**/_*",        // Exclude files starting with '_'.
        "**/_*/**"  // Exclude entire directories starting with '_'.
    ]
}, (err, paths) => {
    console.log(paths);
});
Community
  • 1
  • 1
Lea Hayes
  • 62,536
  • 16
  • 62
  • 111