recursive1 : exec in depth 1.

This commit is contained in:
Dmitry Voronin 2023-11-18 11:09:47 +03:00
parent c7bec1b445
commit 71333b66d9
2 changed files with 31 additions and 1 deletions

View file

@ -586,6 +586,7 @@ Command|Description
Command|Description Command|Description
---|--- ---|---
`recursive <COMMAND>`|Cd into every directory recursively and run specified command in each dir. `recursive <COMMAND>`|Cd into every directory recursively and run specified command in each dir.
`recursive1 <COMMAND>`|Cd into every directory in current directory and run specified command in each dir.
## Shopt. ## Shopt.

View file

@ -27,5 +27,34 @@ recursive()
cd "${current}" cd "${current}"
} }
# run something recursively over all directories.
# usage: recursive [COMMAND]
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
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}] recursive dir: ${dir}${color_default}"
# run command.
$*
done
# return back on complete.
cd "${current}"
}
# autocomplete. # autocomplete.
complete -F _autocomplete_nested recursive complete -F _autocomplete_nested recursive recursive1