# Run something recursively over all directories. # Usage: recursive recursive() { local IFS=$'\n' local current="${PWD}" local dirs=$(find -type d) local total=$(find -type d | wc -l) # TODO: don't call find twice. won't work with "echo ${dirs}". local count=0 local failed=0 for dir in ${dirs}; do # increment counter. ((count++)) # cd into the next dir. cd "${current}" || failed=${?} cd "${dir}" || failed=${?} # echo status. echo -e "${color_bblue}[${count}/${total}] ${dir}${color_default}" # run command. $* || failed=${?} done # return back on complete. cd "${current}" || failed=${?} return ${failed} } # Run something recursively over all directories. # Usage: recursive1 recursive1() # TODO: create generic function. { local IFS=$'\n' local current="${PWD}" local dirs=$(find -mindepth 1 -maxdepth 1 -type d) local total=$(find -mindepth 1 -maxdepth 1 -type d | wc -l) # TODO: don't call find twice. won't work with "echo ${dirs}". local count=0 local failed=0 for dir in ${dirs}; do # increment counter. ((count++)) # cd into the next dir. cd "${current}" cd "${dir}" # echo status. echo -e "${color_bblue}[${count}/${total}] ${dir}${color_default}" # run command. $* || failed=${?} done # return back on complete. cd "${current}" return ${failed} } # autocomplete. complete -F _autocomplete_nested recursive recursive1