使用ln创建软连接的时候出现Too many levels of symbolic links
原因在于:
我使用了相对路径去创建软连接,这样就要导致出现这个错误
root@instance-vgiv786y:/opt/jdk1.8.0_181/bin# ln -s java /usr/local/bin/java
修改为:
root@instance-vgiv786y:/opt/jdk1.8.0_181/bin# ln -s /opt/jdk1.8.0_181/bin/java /usr/local/bin/java
大家一看就知道,很明显我这是在安装jdk,但是我为什么要创建这个软连接,直接在/etc/profile
添加环境变量不就行了吗?
可是将这台服务器作为jenkins的一个节点连接时,居然提示找不到java,明明我添加了环境变量并且生效了,jenkins非要在各种bin
目录下去找,于是我就创建了这个软连接。
软链接(Symbolic Link)
软链接(Symbolic Link),在类 Unix 系统中通常被称为符号链接,允许为文件或目录创建一个指向另一个文件或目录的引用。
软链接类似于 Windows 系统中的快捷方式。
软链接非常有用,特别是需要在不同位置引用同一个文件或目录,或者当你需要重命名或移动文件系统的一部分而不影响指向它们的链接时。
创建软链接
在 Linux 或 macOS 中,可以使用 ln
命令来创建软链接。
ln -s 目标文件或目录 软链接的名称
-s
参数表示创建软链接(符号链接)。- 第一个参数是原始文件或目录的路径。
- 第二个参数是你想要创建的软链接的名称。
1.创建指向文件的软链接:
ln -s /path/to/original/file.txt /path/to/link/symbolic_link.txt
2.创建指向目录的软链接:
ln -s /path/to/original/directory /path/to/link/symbolic_link_dir
查看软链接
使用 ls
命令加上 -L
参数可以查看软链接指向的目标,加上 -l
参数可以查看软链接的详细信息:
ls -L /path/to/link ls -l /path/to/link
更新或删除软链接
软链接本身是一个特殊的文件,所以你可以使用 rm
命令来删除它:
rm /path/to/link/symbolic_link
如果需要更新软链接以指向另一个不同的目标,可以删除现有的软链接并重新创建一个新的软链接。
注意事项
- 创建软链接时,需要对目标文件或目录有读取权限,并且对创建软链接的位置有写入权限。
- 软链接不包含数据,它们不占用大量磁盘空间,只是包含原始文件的路径。
- 如果原始文件被删除或移动,软链接将不再指向有效的目标,称为“悬挂的链接”(dangling link)。
软链接是 Linux 和类 Unix 系统中常用的文件系统特性,它们提供了一种灵活的方式,以简化文件和目录的引用。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。