Wie führe ich in jedem Unterverzeichnis einen Befehl aus?

Wie führe ich in jedem Unterverzeichnis einen Befehl aus?

Ich verwende Puppet und muss symbolische Links zwischen zwei Ordnern erstellen. Ich habe ungefähr 10 Ordner mit derselben Struktur und möchte meinen Link-Befehl immer in ausführen xx/yy/zz.

Etwas wie das:

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

Ich habe versucht,dieseAnweisungen, aber ohne Erfolg.

Gibt es einen einfach zu schreibenden Befehl, mit dem dies möglich ist?

Antwort1

Die richtige Lösung für so etwas in Puppet besteht darin, einen definierten Typ zu erstellen:

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"]: }
}

Dadurch wird ein symbolischer Link erstellt, /folders_1_to_x/yy/fooder auf zeigt /aa/bb/folder_to_link, und /folders_1_to_x/yy/bardann auf /cc/dd/folder_to_link.

Ich denke, die Funktionsweise ist ziemlich unkompliziert, kann es aber bei Bedarf näher erläutern.

verwandte Informationen