bash file globbing anomaly -


the bash manual (i'm using version 4.3.42 on osx) states vertical bar '|' character used separator multiple file patterns in file globbing. thus, following should work on system:

projectfiles=./config/**/*|./support/**/* 

however, second pattern gives "permission denied" on last file in directory structure pattern never resolved projectfiles. i've tried variations on this, including wrapping patterns in parentheses,

projectfiles=(./config/**/*)|(./support/**/*) 

which laid out in manual, doesn't work either.

any suggestions on i'm doing wrong?

you're referring part in man bash:

   if extglob shell option enabled using shopt builtin, several    extended pattern matching operators recognized.  in   following    description, pattern-list list of 1 or more patterns separated    |.  composite patterns may formed using 1 or more of fol-    lowing sub-patterns:            ?(pattern-list)                  matches 0 or 1 occurrence of given patterns           *(pattern-list)                  matches 0 or more occurrences of given patterns           +(pattern-list)                  matches 1 or more occurrences of given patterns           @(pattern-list)                  matches 1 of given patterns           !(pattern-list)                  matches except 1 of given patterns 

the | separator works in pattern-lists explained, when extglob enabled:

shopt -s extglob 

try this:

projectfiles=*(./config/**/*|./support/**/*) 

as @broslow pointed out in comment:

note can without extglob, ./{config,support}/**/*, expand path config , path support space delimited , pattern matching. or ./@(config|support)/**/* extglob. either of seems cleaner.

@chepner's comment worth mentioning:

also, globbing isn't performed @ during simple assignment; try foo=*, compare echo "$foo" echo $foo. globbing occur during array assignment; see foo=(*); echo "${foo[@]}"


Comments

Popular posts from this blog

ios - RestKit 0.20 — CoreData: error: Failed to call designated initializer on NSManagedObject class (again) -

java - Digest auth with Spring Security using javaconfig -

laravel - PDOException in Connector.php line 55: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) -