¿Cómo ejecuto un comando en cada subdirectorio?

¿Cómo ejecuto un comando en cada subdirectorio?

Estoy usando Puppet y necesito crear enlaces simbólicos entre dos carpetas. Tengo alrededor de 10 carpetas con la misma estructura y siempre quiero ejecutar mi comando de enlace en formato xx/yy/zz.

Algo como esto:

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

Intenté seguirestosdirecciones pero no tuvo éxito.

¿Existe algún comando fácil de escribir que pueda lograr esto?

Respuesta1

La solución adecuada para algo como esto en Puppet es crear un 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"]: }
}

Esto creará un enlace simbólico /folders_1_to_x/yy/foopara señalar /aa/bb/folder_to_linky /folders_1_to_x/yy/barapuntar a /cc/dd/folder_to_link.

Creo que es bastante sencillo cómo funciona esto, pero puedo aclararlo si es necesario.

información relacionada