如何在每个子目录中执行命令?

如何在每个子目录中执行命令?

我正在使用 Puppet,我需要在两个文件夹之间创建符号链接。我有大约 10 个具有相同结构的文件夹,并且我总是想在xx/yy/zz.

像这样的东西:

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

我尝试跟随这些方向,但没有成功。

有没有一个易于编写的命令可以完成此任务?

答案1

在 puppet 中解决此类问题的正确解决方案是创建一个定义的类型:

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

这将符号链接/folders_1_to_x/yy/foo指向/aa/bb/folder_to_link/folders_1_to_x/yy/bar指向/cc/dd/folder_to_link

我认为它的工作原理非常简单,但如果需要我可以澄清。

相关内容