2011-09-17 22 views
3

linuxまたはfreebsdの場合、フォルダとそのサブフォルダのすべてのファイルをシンボリックリンクとしてコピーする方法はありますか?私は数千のファイルをシンボリックリンクとして別の場所にコピーし、実際のファイルとして2-3の設定ファイルしか持たないようにする必要があります。私はこれをやっている理由は、まったく同じエンジンコードを持つウェブサイトがたくさんありますが、設定と外観は異なります。私はシンボリックリンクとしてエンジンをコピーしたいので、元のファイルに加えたすべての変更は他のウェブサイトにも適用されます。 設定ファイルがそのフォルダの下にあり、ファイルを1つずつコピーできないため、エンジンフォルダ自体にシンボリックリンクを張ることができません!明らかに実用的ではありません。 提案がありますか?フォルダとそのサブフォルダの下のファイルをシンボリックリンクとして再帰的にコピーする方法

+0

あなたはシンボリックリンクをしたい場合、あなたは再帰的にそれを行う必要はありません。サブディレクトリの最上位レベルにリンクすることができます。 – Kent

答えて

8

あなたが探しているコマンドはcp -rs /path/to/source destです。

ソースディレクトリへのフルパスを指定して、絶対的なシンボリックリンクを作成する必要があることに注意してください。

+0

私は-rsを試しましたが、動作しませんでした。私はcp:不正なオプションを取得します。 – Tohid

+0

FreeBSDにはそのオプションがないようです:(でもあなたは正しいです!Linux上で動作します – Tohid

1

これはあなたが望むものであるならば、私は知らない。(以下の例を参照)

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

[email protected]:/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 

[email protected]:/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  
関連する問題