Como executo um comando em cada subdiretório?

Como executo um comando em cada subdiretório?

Estou usando o Puppet e preciso criar links simbólicos entre duas pastas. Tenho cerca de 10 pastas com a mesma estrutura e sempre quero executar meu comando link em formato xx/yy/zz.

Algo assim:

ln -s aa/bb/folder_to_link  folders_1_to_x/yy/link_name

Eu tentei seguiressesdireções, mas não teve sucesso.

Existe um comando fácil de escrever que pode fazer isso?

Responder1

A solução adequada para algo assim no puppet é criar um tipo definido:

define folder_link (
 $link_map = $name,
) {
 $link_map_split = split($link_map, ':')
 $origin = $link_map_split[0]
 $link_name = $link_map_split[1]
 $link_path = "/folders_1_to_x/yy/$link_name"

 file { $link_path:
  ensure => link,
  target => $origin,
 }
}


class foo {
 folder_link { ["/aa/bb/folder_to_link:foo", "/cc/dd/folder_to_link:bar"]: }
}

Isso criará um link simbólico /folders_1_to_x/yy/foopara apontar /aa/bb/folder_to_linke /folders_1_to_x/yy/barapontar para /cc/dd/folder_to_link.

Acho que é bastante simples como isso funciona, mas posso esclarecer se necessário.

informação relacionada