是否可以在符号链接文件夹内创建子文件夹但不将其添加到父文件夹中?

是否可以在符号链接文件夹内创建子文件夹但不将其添加到父文件夹中?

这是一个非常棘手的问题,很抱歉

基于此

  • 文件夹 A
    • 文件1
    • 文件2
  • 文件夹 B (文件夹 A 的符号链接 (软链接))
    • 文件1
    • 文件2

我想要做的是在我的文件夹 B 中创建一个文件夹或文件,但我不希望该文件夹位于文件夹 A 上,就像这样

  • 文件夹 A
    • 文件1
    • 文件2
  • 文件夹 B (文件夹 A 的符号链接 (软链接))
    • 文件1
    • 文件2
    • 新建文件夹

这可能吗?

我想要一个单独的 worpress 文件,与多个网站共享,但每个网站都有自己的“wp-content”和“wp-config.php”,在每个网站上,我想创建一个 www/the-site/blog(博客)作为 WP 的符号链接,我知道 wordpress 有一个多站点选项,但只适用于域,我想进入博客文件夹或任何名称,我不想重定向到 blog.mysite.com

这样做的目的是只使用一个实例来保持 wordpress 的更新,而不是向每个站点添加一个 wordpress 实例,然后在需要时更新每个实例

我尝试符号链接“父”文件夹内的所有文件,而不是符号链接整个文件夹,但问题是 PHP 采用“父”文件夹(文件夹 A)的路径,而不是其相对路径(文件夹 B),因此找不到文件夹 B 上的“wp-config.php”

答案1

这是不可行的:如果你符号链接到一个公共目录,那么你就是从这个公共目录中添加/更改/删除文件,而不是从你的符号链接下的某个“虚拟”目录中添加/更改/删除文件。

一个办法:

为了满足您的需求:将常用文件作为源文件的硬链接,并添加不同的文件

要做到这一点:

创建目录结构+指向公共文件的硬链接(不是符号链接),使用类似如下的方法:

cd /common/base-directory/ || exit 1
find . -depth -type f -print0 | cpio -0pdl /new/base-directory 

(cpio 中的 -l(作为“链接”)将创建硬链接而不仅仅是新副本)

然后添加丢失的(新)文件,如果需要更改现有文件:DELETE+REPLACE 硬链接的文件

(即,与 /common/base-directory 中的文件硬链接)。您必须先删除文件(即硬链接),然后使用新内容重新创建。否则,如果您编辑硬链接文件,您将同时编辑该文件和硬链接文件...

答案2

这是不可能的,文件夹 B 实际上是文件夹 A 的别名,所以您要将文件/文件夹添加到文件夹 A。

最好有单独的文件夹并链接公共文件(文件 1 和文件 2)。

答案3

我的建议是创建一个真正的文件夹 B,然后从 A 创建所有符号链接:

mkdir B
cd B
ln -s A/* . 

此时,您已将 B/file1 链接到 A/file1,将 B/file2 链接到 A/file2。然后,您可以创建实际上位于 B 中的 B/newfolder。

相关内容