随着csh,tcsh,ksh,zsh,bash,fish或yash -o braceexpand:
sudo chmod +rx /root{,/subfolder1{,/subfolder2{,/subfolderN}}}
与zsh:
f=/root/subfolder1/subfolder2/subfolderN
until [[ $f = / ]] {chmod +rx $f; f=$f:h;}
或者,您可以定义一个全局限定符函数,例如:
explode() {
reply=()
until [[ $REPLY = [./] ]] {
reply+=$REPLY
REPLY=$REPLY:h
}
}
例如用作:
$ echo chmod +rx subfolder1/subfolder2/subfolderN(+explode)
chmod +rx subfolder1 subfolder1/subfolder2 subfolder1/subfolder2/subfolderN
请注意,这chmod +rx受umask的影响。如果您的目录umask不包括007,则会使/root目录在世界范围内可读并且可访问,这是一个坏主意。/root通常用于超级用户的私人物品,公开它是一个坏主意。
/root世界可读。