如何以文件夹及其子文件夹的形式递归复制文件作为符号链接

时间:2011-09-17 15:57:57

标签: linux unix

在linux或freebsd中,有没有办法将文件夹及其子文件夹下的所有文件复制为符号链接?我需要将数千个文件作为符号链接复制到不同的位置,并且只有2-3个配置文件作为实际文件。我这样做的原因是,我有十几个网站具有完全相同的引擎代码,但配置和外观不同。我想将引擎复制为符号链接,因此我对原始文件所做的每一项更改也将应用于其他网站。 我无法对引擎文件夹本身进行符号链接,因为配置文件位于该文件夹下,我无法逐个复制文件!因为显然它不实用。 有什么建议吗?

2 个答案:

答案 0 :(得分:8)

您要查找的命令是cp -rs /path/to/source dest

请注意,您需要提供源目录的完整路径,以便它可以创建绝对符号链接。

答案 1 :(得分:1)

我不知道这是否是你想要的:(见下面的例子)

dir one is your central "engine"
dir two is one of your website.

kent@ArchT60:/tmp$ tree one two
one
|-- 1.txt
|-- 2.txt
|-- 3.txt
|-- 4.txt
|-- 5.txt
|-- dirA
|   |-- a
|   |-- b
|   `-- c
|-- dirB
`-- dirC
two
|-- myConf_a.conf
|-- myConf_b.conf
|-- myConf_c.conf
|-- myConf_d.conf
`-- myConf_e.conf

kent@ArchT60:/tmp$ ln -s /tmp/one/* /tmp/two/.

kent$  tree -l /tmp/two
/tmp/two
|-- 1.txt -> /tmp/one/1.txt
|-- 2.txt -> /tmp/one/2.txt
|-- 3.txt -> /tmp/one/3.txt
|-- 4.txt -> /tmp/one/4.txt
|-- 5.txt -> /tmp/one/5.txt
|-- dirA -> /tmp/one/dirA
|   |-- a
|   |-- b
|   `-- c
|-- dirB -> /tmp/one/dirB
|-- dirC -> /tmp/one/dirC
|-- myConf_a.conf
|-- myConf_b.conf
|-- myConf_c.conf
|-- myConf_d.conf
`-- myConf_e.conf