- Faz um loop (
for foo in bar; do something; done
) dos arquivos que correspondem aos*
e.*
globs e- cópias (
cp
)- cada arquivo (
$j
) para - um caminho composto de
- o diretório pai (
../
) - seguido por um caminho de diretório
- começando com o valor de
$name
, - seguido por
-S
, - alguma outra variável desconhecida (
$i
) - e finalmente
.gid/
,
- começando com o valor de
- , em seguida, um nome de arquivo começando com
- a sequência restante após a remoção do final do arquivo (
${j...}
) da sequência mais longa (%%
) correspondente à glob. *
, significando- um ponto
- seguido por um espaço,
- seguido por qualquer número de caracteres
- seguido por um espaço
- seguido pelo valor de
$i
, - seguido por um ponto
- e, finalmente, a sequência restante após a remoção do início do arquivo (
${j...}
) da string mais curta que corresponde à glob*.
, significando- qualquer número de caracteres
- seguido por um ponto.
- a sequência restante após a remoção do final do arquivo (
- o diretório pai (
- cada arquivo (
- cópias (
Tudo isso é explicado em man bash
. Este código deve ser simplificado para usar as variáveis citadas para cada uma delas expansões para explicar o que são. Não é sustentável como é IMO.