1

アプリケーションを含むフォルダーがあります。次に、「サイト」と呼ばれる別のディレクトリに柔軟な数のフォルダーを用意します。次のようになります。

+ -Application
+ -- Test.html
+ -- CSS
+ --- Style.css

+ -Sites 
+ --Site1
+ --Site2

アプリケーションフォルダー内のすべてのファイルを、サイトフォルダーの下にあるすべてのフォルダーにシンボリックリンクしたいと考えています。したがって、最終結果は次のようになります。

+ -Sites 
+ --Site1
+ -- Test.html
+ -- CSS
+ --- Style.css
+ --Site2
+ -- Test.html
+ -- CSS
+ --- Style.css

したがって、最初のステップは、Sites フォルダーにあるすべてのフォルダーのループであり、フォルダー内のすべてのフォルダーに対してシンボリック リンクを実行することだと思います。私は本当にコーディングできませんが、私の読書から、このような何かが出発点になるのでしょうか?

find ./* -type d |
while read LINE
do
        echo ln -s /absolute/path/to/files/* "$LINE"
done
4

2 に答える 2

2
for dir in Sites/*; do
    cd "$dir" && ln -s ../../Application/* . && cd -
done
于 2012-09-26T20:10:14.713 に答える
0

とても簡単で直感的です。各サイト内で実行して実行できます。

ln -s ../../Application/* .

(ルートディレクトリから)AWKを使用して、すべての「サイト」に対して実行できます。

ls -l | awk '$1 ~ /d.*/ && $NF !~ /Application/ && NF > 5 {system("cd "$NF" ; ln -s ../../Application/* .");}' -

説明: ファイルの一覧表示、ディレクトリの取得 (/d.*/)、アプリケーション フォルダーの無視、各フォルダーへの移動 (cd $NF)、「マジック ライン」の実行。

于 2012-09-26T18:51:36.113 に答える