Linux

公共文件的符號連結

  • November 13, 2009

我正在嘗試在我們的一台 CenotOS 伺服器上整合一些網站文件,我想要創建的設置是這樣的,但我不確定它是否真的可能

我們將有一組所有站點都使用的文件:

/home/commonfiles/
                public_html/
                library/

每個站點目錄看起來像這樣:

/home/site1/bespoke/
                  css/
                  images/ 

每個“站點”都將使用公共文件中的public_htmllibrary文件夾。符號連結顯然會為此工作。不過,我還想要/home/commonfiles/public_html/css指出絕對連結來自的站點/home/site1/bespoke/css在哪裡。我知道創建相對符號連結是可能的,但是絕對符號連結是否可能包含相對符號連結。site1``/home/commonfiles/public_html/

我希望這是有道理的,因為我真的很感激一些建議

編輯

詳細地說,這是我想要的基本結構(如果可能的話)

/home/common
/home/common/public
/home/common/library
/home/site1
/home/site1/public -> /home/common/public
/home/site1/library -> /home/common/library
/home/site1/bespoke/
/home/site1/bespoke/css
/home/site1/bespoke/images
/home/site1/public/css -> /home/site1/bespoke/css 
/home/site1/public/images -> /home/site1/bespoke/images
/home/site2
/home/site2/public -> /home/common/public
/home/site2/library -> /home/common/library
/home/site2/bespoke/
/home/site2/bespoke/css
/home/site2/bespoke/images
/home/site2/public/css -> /home/site2/bespoke/css
/home/site2/public/images -> /home/site2/bespoke/images

我想本質上的映射 - 例如 -/home/site1/public/css -> /home/site1/bespoke/css不一定必須通過連結完成,也許這可以以某種方式在 .htaccess 中完成。希望你能看到我想要在這裡實現的目標。

只是為了補充一點,這基本上是我想做的(如果它有效的話):

mkdir test
mkdir test/common
mkdir test/common/public
mkdir test/common/library
mkdir test/site1
mkdir test/site2
mkdir test/site1/bespoke
mkdir test/site2/bespoke
mkdir test/site1/bespoke/css
mkdir test/site1/bespoke/images
mkdir test/site2/bespoke/css
mkdir test/site2/bespoke/images
ln -s /home/user/test/common/public test/site1/public
ln -s /home/user/test/common/library test/site1/library
ln -s /home/user/test/common/public test/site2/public
ln -s /home/user/test/common/library test/site2/library
cd test/common/public
ln -s ../bespoke/css css
ln -s ../bespoke/images images

連結是不可能的

答案是肯定的。下面的測試對於您想要做的事情可能過於糾結,但它可能有助於說明可以做什麼。

$ mkdir test
$ mkdir test/a
$ mkdir test/a/dir1
$ touch test/a/dir1/file1
$ ln -s /absolute/path/to/test/a test/b
$ ls -l test
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 a
lrwxrwxrwx 1 user user   28 2009-11-13 07:45 b -> /absolute/path/to/test/a
$ ls -l test/b
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 dir1
$ cd b
$ ln -s ../a/dir1 dir2
$ ls -l
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 dir1
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 dir2 -> ../a/dir1
$ ls -l dir1
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 file1
$ ls -lH dir2
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 file1
$ cd ../a
$ ls -l
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 dir1
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 dir2 -> ../a/dir1

最後一個條目有點意思。本質上是/absolute/path/to/test/a/../a/dir1.

引用自:https://serverfault.com/questions/84359