本篇内容主要讲解“Linux下的符号链接怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下的符号链接怎么使用”吧!
主要有两种类型的符号链接,即:
**硬链接:**硬链接是指向文件系统中的文件或目录的直接指针。硬链接只能在与目标文件相同的文件系统中创建。
**软连接:**软链接是文件或目录的间接快捷方式,可以存在于文件系统中的任何位置。软链接可以指向不同文件系统中的文件。
如何创建符号链接
要在 Linux 中创建符号链接,我们使用 ln
命令。执行不带选项的命令会创建指向指定目标文件的硬链接。
ln
命令的一般语法是:
ln [OPTIONS]
如要创建软链接,需要添加 -s
选项:
ln -s [OPTION]
以下命令在我们的主目录中创建指向/var/log/audit/audit.log
文件的软链接:
[root@localhost ~]# ln -s /var/log/audit/audit.log ~/audit.log
以下命令在我们的主目录中创建指向/var/log
目录的软链接:
[root@localhost ~]# ln -s /var/log ~/log
要删除符号链接,我们使用命令 unlink
后跟要删除的符号链接的路径。
[root@localhost ~]# unlink ~/log
下图可看到,log的快捷方式没有了。
注意:如果删除目标文件或目录,请记得删除符号链接,因为符号链接不会随着文件的删除而删除。
每个符号链接都会指向一个目标文件或目录(除非损坏)。要获取符号链接的目标文件/目录,我们使用readlink
命令显示符号链接的目标。
例如,要获取我们在前面部分中创建的 audit.log
文件的目标,我们可以执行以下操作:
[root@localhost ~]# readlink ~/audit.log/var/log/audit/audit.log
我们可以创建一个简单的 bash 脚本,该脚本接受路径并列出所有符号链接及其目标文件或目录:
[root@localhost ~]# vim symlink.sh#!/bin/bashread -p "Provide the directory to evaluate: " target_dircd $target_dirlinks=$(find . -maxdepth 1 -type l -ls | awk '{print $11}')for link in $linksdo echo "$link -> $(readlink $link)"done
该脚本首先询问用户要获取的目录。然后,脚本转到提供的目录并找到目录中的所有符号链接,并将输出传递给awk
命令。
awk
输出并定位符号链接,并将它们保存到一个名为 links 的变量中。
然后我们创建一个循环,抓取links变量中的每个链接,并使用 readlink
命令获取它们的目标位置。
最后,显示符号链接和目标目录。下面是一个示例输出:
[root@localhost ~]# ./symlink.shProvide the directory to evaluate: /etc ./rc.local -> rc.d/rc.local ./redhat-release -> centos-release ./system-release -> centos-release ./init.d -> rc.d/init.d ./rc0.d -> rc.d/rc0.d ./rc1.d -> rc.d/rc1.d ./rc2.d -> rc.d/rc2.d ./rc3.d -> rc.d/rc3.d ./rc4.d -> rc.d/rc4.d ./rc5.d -> rc.d/rc5.d ./rc6.d -> rc.d/rc6.d ./localtime -> ../usr/share/zoneinfo/Asia/Shanghai ./mtab -> ../proc/self/mounts ./yum.conf -> dnf/dnf.conf ./grub2.cfg -> ../boot/grub2/grub.cfg
到此,相信大家对“Linux下的符号链接怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。