Em um shell como bash
, você pode usar sua opção extended globbing para primeiro marcar todos os diretórios chamados workspace
e chmod
em uma única chance
shopt -s nullglob globstar
A opção nullglob
é certificar-se de que a expansão glob não lança nenhum erro quando não encontra nenhum arquivo no caminho. Isso também garantirá que a cadeia vazia de glob não seja incluída como parte da matriz. A opção globstar
está ativada para globalização recursiva.
Agora marque esses diretórios em uma matriz de shell como
dirs=(**/workspace/)
Como mais uma verificação de sanidade, você pode primeiro imprimir a matriz para ver se todos os diretórios necessários foram atendidos. Veja se todos os diretórios estão listados abaixo quando você faz o comando printf()
abaixo,
printf '%s\n' "${dirs[@]}"
Isso preencherá o array com todas as pastas workspace
recursivas, agora precisamos usar chmod
(( "${#dirs[@]}" )) && chmod -R 774 -- "${dirs[@]}"