如何在Linux中创建多级软链接,或者可以这样做?
我继承了无法触摸的旧脚本-不要问。它引用安装在位置如何在Linux中创建多级软链接,或者可以这样做?,linux,unix,symlink,Linux,Unix,Symlink,我继承了无法触摸的旧脚本-不要问。它引用安装在位置/SuperSoft/SomeSoft/ 自收购后重新制作的新版软件安装在 /usr/local/SomeSoft 我一直在尝试在根级别创建以下软链接: ln-s SuperSoft/SomeSoft//usr/local/SomeSoft/ 我不想在根级别创建一个SuperSoft目录。这能做到吗?很难得到你想要的。使用此链接: ln -s /usr/local/SuperSoft/ /SuperSoft/ 现在,您可以使用以下ls浏览/Su
/SuperSoft/SomeSoft/
自收购后重新制作的新版软件安装在
/usr/local/SomeSoft
我一直在尝试在根级别创建以下软链接:
ln-s SuperSoft/SomeSoft//usr/local/SomeSoft/
我不想在根级别创建一个
SuperSoft
目录。这能做到吗?很难得到你想要的。使用此链接:
ln -s /usr/local/SuperSoft/ /SuperSoft/
现在,您可以使用以下ls
浏览/SuperSoft/SomeSoft
的内容:
ls -al /SuperSoft/SomeSoft
很难得到你想要的。使用此链接:
ln -s /usr/local/SuperSoft/ /SuperSoft/
现在,您可以使用以下ls
浏览/SuperSoft/SomeSoft
的内容:
ls -al /SuperSoft/SomeSoft
在文件系统的两个部分中拥有相同的文件也可以通过挂载来完成 从linux上的“man mount”开始:
在文件系统的两个部分中拥有相同的文件也可以通过挂载来完成 从linux上的“man mount”开始:
您正在查找第一种形式的
ln
:
SYNOPSIS
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
使用-s
作为选项,因为您需要符号链接。TARGET
是符号链接的“值”——即链接将指向的对象。LINK\u NAME
是正在创建的链接的实际位置。因此,要在/SuperSoft/SomeSoft
处创建指向/usr/local/SomeSoft
的符号链接,您需要执行以下操作:
ln -s /usr/local/SomeSoft /SuperSoft/SomeSoft
在一个长长的列表中看起来像这样:
$ ls -l /SuperSoft/SomeSoft
lrwxrwxrwx 1 user group 18 May 23 13:43 /SuperSoft/SomeSoft -> /usr/local/SomeSoft
因此,您可以将新版本的软件正常安装到/usr/local
,当您的现有脚本尝试访问/usr/local
时,无法修改的脚本将指向/usr/local
注意,这样做假定存在一个名为/SuperSoft
的目录。如果这不是您的选项(或者您只是不想这样做),那么您可以在/SuperSoft
上创建一个符号链接,指向/usr/local
(ln-s/usr/local/SuperSoft
),因为访问/SuperSoft/SomeSoft
将变成/usr/local/SomeSoft
。不过我不建议这样做,因为它不太干净
更新:
另一种使/SuperSoft
成为符号链接的方法是:
mkdir /usr/local/SuperSoft
ln -s /usr/local/SuperSoft /SuperSoft
ln -s /usr/local/SomeSoft /SuperSoft/SomeSoft
在任何情况下,都需要有一个目录,其中包含指向
/user/local/SomeSoft
的链接,您正在查找ln
的第一种形式:
SYNOPSIS
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
使用-s
作为选项,因为您需要符号链接。TARGET
是符号链接的“值”——即链接将指向的对象。LINK\u NAME
是正在创建的链接的实际位置。因此,要在/SuperSoft/SomeSoft
处创建指向/usr/local/SomeSoft
的符号链接,您需要执行以下操作:
ln -s /usr/local/SomeSoft /SuperSoft/SomeSoft
在一个长长的列表中看起来像这样:
$ ls -l /SuperSoft/SomeSoft
lrwxrwxrwx 1 user group 18 May 23 13:43 /SuperSoft/SomeSoft -> /usr/local/SomeSoft
因此,您可以将新版本的软件正常安装到/usr/local
,当您的现有脚本尝试访问/usr/local
时,无法修改的脚本将指向/usr/local
注意,这样做假定存在一个名为/SuperSoft
的目录。如果这不是您的选项(或者您只是不想这样做),那么您可以在/SuperSoft
上创建一个符号链接,指向/usr/local
(ln-s/usr/local/SuperSoft
),因为访问/SuperSoft/SomeSoft
将变成/usr/local/SomeSoft
。不过我不建议这样做,因为它不太干净
更新:
另一种使/SuperSoft
成为符号链接的方法是:
mkdir /usr/local/SuperSoft
ln -s /usr/local/SuperSoft /SuperSoft
ln -s /usr/local/SomeSoft /SuperSoft/SomeSoft
在任何情况下,都需要有一个包含指向
/user/local/SomeSoft
的链接的目录。不,您不能创建作为目录路径的符号链接。符号链接只是普通目录中的一个条目,因此它必须符合所有常规命名规则
如果需要符号链接“/SuperSoft/SomeSoft”,则“/SuperSoft”必须存在。它可以是一个目录,也可以是指向其他地方的符号链接,但它必须是某种东西
如果绝对不想在/中创建新目录,那么可以使用适当的目录/symlinks/etc创建一个假/并在那里运行脚本chrooted()。但这比创建一个目录要复杂得多。不,不能创建作为目录路径的符号链接。符号链接只是普通目录中的一个条目,因此它必须符合所有常规命名规则 如果需要符号链接“/SuperSoft/SomeSoft”,则“/SuperSoft”必须存在。它可以是一个目录,也可以是指向其他地方的符号链接,但它必须是某种东西
如果绝对不想在/中创建新目录,那么可以使用适当的目录/symlinks/etc创建一个假/并在那里运行脚本chrooted()。但这不仅仅是创建一个目录,还需要更多的设置。如果你避免创建
/SuperSoft
,那么我假设/usr/local/SomeSoft
是现有的目录,而/SuperSoft/SomeSoft
是你没有的目录(或者我误解了?)。然后,您可以交换ln-s
上的参数,因为现有路径是第一个,新路径是第二个。此外,我尝试在2级未创建的路径上使用ln,但它不起作用。如果你做了ln-s/usr/local/SuperSoft
,怎么样?我想这样就可以了,不过你也可以从/SuperSoft
访问/usr/local
(不确定这是否是一个不良的副作用)。如果你避免创建/SuperSoft
,那么我假设/usr/local/SomeSoft
就是存在的