Walk a directory/Recursively: Difference between revisions

→‎{{header|UNIX Shell}}: globstar and dotglob
(→‎{{header|UNIX Shell}}: globstar and dotglob)
Line 1,532:
The "find" command gives a one-line solution for simple patterns:
 
<lang bash>find . -name '*.txt' -type f </lang>
 
"find" can also be used to find files matching more complex patterns as illustrated in the section on [[#UnixPipes|Unix Pipes]] below.
 
Using "bash" version 4 or later, you can use "globstar" or "dotglob", depending on whether you want hidden directories to be searched:
 
<lang bash>#! /bin/bash
# Warning: globstar excludes hidden directories.
# Turn on recursive globbing (in this script) or exit if the option is not supported:
shopt -s globstar || exit
 
for f in **
do
if [[ "$f" =~ \.txt$ ]] ; then
echo "$f"
fi
done
 
</lang>
 
 
Here is a solution that does not use "find".
2,503

edits