如何创建一个符号链接,将一个文件链接到每个子目录(包括子目录)

如何创建一个符号链接,将一个文件链接到每个子目录(包括子目录)

我错误地在 StackOverflow 上问了这个问题,他们建议我在这里问。

我读过这里的很多其他帖子,它们似乎都得到了成功解答,但我就是跟不上。我还是个新手,我不想尝试反复试验的方法,因为我不确定我是否能解决这个问题。这就是我的情况。

我有一个名为“php.ini”的文件,它位于我的主机的根 Web 文件夹中。我需要这个文件夹也位于服务器上的每个文件夹和子文件夹中。主机建议“在子文件夹中创建一个符号链接”,这就是他们所能提供的帮助。我问怎么做,他们告诉我去谷歌搜索。所以我就这么做了……但我迷路了。到目前为止,我有以下信息:

ln -s /path/to/htdocs/php.ini LINK-NAME

但实际上我不确定这是否正确,我也不确定应该LINK-NAME是什么,或者它做什么。另外,我不知道这是否会在每个文件夹和子文件夹中创建链接?由于我应该使用 SSH 输入此命令,所以我想确保在尝试之前我输入正确。如果这是一个非常基本的知识(新手)问题,我很抱歉,我所有的搜索都只是给出了一个例子,没有一个解释它们的作用!

太感谢了!

答案1

你可以将find某个路径中的每个目录

find path -type d 

并在其上找到执行-exec(或-execdir应该更安全)ln-v使用详细)(假设您要链接到的完整路径是/path/to/htdocs/php.ini

find path -type d -execdir ln -v -s /path/to/htdocs/php.ini '{}' ';'

或者,您可以使用-exec-execdir将 find 的输出传输到管道xargs(空分隔输出可能会有帮助,-print0/ -0),或者在 bash/sh 脚本中使用,等等......


但首先,你可能需要检查其中是否已经有 php.ini 文件,使用

find path -name php.ini

或者如果你创建了一堆新的 php.ini 链接,并想检查它们实际指向什么,请使用

find path -name php.ini -execdir readlink '{}' ';'

或者如果你错误地创建了大量错误的 php.ini 文件,你可以使用以下命令删除它们

find path -name php.ini -delete

相关内容