I wanted to search for a file that had 'Tokyo' in the basename, in all directories below a given point. I had been doing it 'find', but thought globstar should work. W/globstar set, I looked for:
ls **Tokyo* (nothing) ls ***Tokyo* (nothing) ls **Tokyo**Tokyo* (nothing) ls **/*Tokyo* (found multiple matches (including the one I was searching for)) A sample file I was searching for: Library/Tokyo Ravens/[gg]_Tokyo_Ravens_-_01_[398DE7BC].mkv I.e. had Tokyo in _both_, dir and subfiles, Why didn't any of the 1st 3 patterns find anything? It seemed that I needed a '/' in the pattern for it to be processed as a globstar pattern...?? Is that supposed to be a requirement for globstar to function? From this (from bash manpage): * Matches any string, including the null string. When the globstar shell option is enabled, and * is used in a pathname expansion context, two adjacent *s used as a single pattern will match all files and zero or more directories and subdirectories. If followed by a /, two adjacent *s will match only directories and subdirecto- ries. The slashes don't seem to be required. Other glob settings: dotglob on extglob on failglob off globasciiranges on globstar on nocaseglob on nullglob off
echo $BASH_VERSION
4.4.12(2)-release Thanks, -linda