see also
zsh
posix shell
plan9 rc
sircmpwn rc
loop over files and directories
# Greedy example.
for file in *; do
printf '%s\n' "$file"
done
# PNG files in dir.
for file in ~/Pictures/*.png; do
printf '%s\n' "$file"
done
# Iterate over directories.
for dir in ~/Downloads/*/; do
printf '%s\n' "$dir"
done
# Brace Expansion.
for file in /path/to/parentdir/{file1,file2,subdir/file3}; do
printf '%s\n' "$file"
done
# Iterate recursively.
shopt -s globstar
for file in ~/Pictures/**/*; do
printf '%s\n' "$file"
done
shopt -u globstar
run a command in all subdirectories
This runs git pull in every subdirectory.
shopt -s globstar
dd=$( pwd )
for dir in "$@"/**/; do
cd "$dd"/"$dir" && git pull
done
shopt -u globstar