kota's memex

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