Adicione isso ao seu arquivo de configuração zsh
:
function pathargs {
local P=$1; local L=${#P}; shift
local N=1; while [[ $N -le $L ]]; do
[[ ($N == 1 && ${P[1]} = '/') || \
${P[$N]} != '/' && ($N == $L || ${P[$N+1]} == '/') ]] \
&& $@ ${P:0:$N}
N=$(($N+1))
done
}
Exemplo:
% pathargs /abc/def/ghi/jkl echo
/
/abc
/abc/def
/abc/def/ghi
/abc/def/ghi/jkl
Você pode usá-lo com chmod -R g+x
em vez de echo
. O comando será chamado nos diretórios mais altos primeiro.