Walk a directory/Recursively: Difference between revisions
Content deleted Content added
→{{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".
|