如何创建将一个文件链接到包含子项的每个子目录的符号链接


0

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

我在这里阅读了很多其他帖子,它们似乎都得到了成功的回答,但我无法跟进。我还是很新,我不想尝试试错法,因为我不确定我是否能够修复它。这就是我的位置。

我有一个名为“php.ini”的文件,它位于我主机的根网站文件夹中。我需要这个文件夹也在服务器上的每个文件夹和子文件夹中。主持人建议“在子文件夹中创建一个符号链接”,这就是他们的帮助程度。我问他们是怎么告诉我谷歌的。所以我做了......我迷路了。到目前为止我有这个:

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

但我真的不确定这是不对的,而且我不确定是什么 LINK-NAME 应该是,或它做什么。另外,我不知道这是否会在每个文件夹和子文件夹中创建链接?因为我应该使用SSH来输入这个命令,所以我想在尝试之前确保我拥有它。如果这是非常基本的知识(noob)问题,我很抱歉,我的所有搜索都只是举例,但没有一个能解释他们的所作所为!

非常感谢!


你不能试验一下吗?只需尝试一些命令 测试 目录与子目录。你不会完全解决问题,但希望“什么是 LINK-NAME 应该是“和”如果这将在每个文件夹和子文件夹中创建链接“将不再是神秘的。加 man ln 是你的朋友。 “在你尝试之前确保你拥有它”将不会让你在Linux中走得更远。 :)或者你可能缺乏如何创建测试目录并整理可能造成的混乱的知识?这些命令是否熟悉: mkdircdcprm,rmdir`?我不是在评判;只是问问而已。
Kamil Maciorowski

Answers:


0

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

find path -type d 

并找到执行 -exec (要么 -execdir 应该更安全) ln (与 -v for verbose)(假设您要链接的完整路径是 /path/to/htdocs/php.ini

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

或者代替使用 -exec 要么 -execdir 你可以管道找到输出 xargs (null分隔输出可能会有帮助, -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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.