Linux下符号链接的具体使用方法

在 Linux 底下的连结档有两种,一种是类似 Windows 的快捷方式功能的文件,可以让你快速的链接到目标文件(或目录),这种是软链接; 另一种则是透过文件系统的 inode 连结来产生新档名,而不是产生新文件!这种称为硬链接 (hard link),下面为大家分享一下Linux下符号链接的具体使用方法。

创新互联是专业的福清网站建设公司,福清接单;提供成都网站制作、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行福清网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

符号链接的类型

主要有两种类型的符号链接,即:

**硬链接:**硬链接是指向文件系统中的文件或目录的直接指针。硬链接只能在与目标文件相同的文件系统中创建。

**软连接:**软链接是文件或目录的间接快捷方式,可以存在于文件系统中的任何位置。软链接可以指向不同文件系统中的文件。

如何创建符号链接

要在 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

Bash 脚本实例:获取符号链接的目标位置Bash 脚本实例:获取符号链接的目标位置

实例二:创建目录的软连接

以下命令在我们的主目录中创建指向/var/log目录的软链接:

[root@localhost ~]# ln -s /var/log ~/log

Bash 脚本实例:获取符号链接的目标位置Bash 脚本实例:获取符号链接的目标位置

如何删除符号链接

要删除符号链接,我们使用命令 unlink 后跟要删除的符号链接的路径。

[root@localhost ~]# unlink ~/log

下图可看到,log的快捷方式没有了。 注意:如果删除目标文件或目录,请记得删除符号链接,因为符号链接不会随着文件的删除而删除。

如何获取符号链接的目标文件或目录

每个符号链接都会指向一个目标文件或目录(除非损坏)。要获取符号链接的目标文件/目录,我们使用readlink命令显示符号链接的目标。

例如,要获取我们在前面部分中创建的 audit.log 文件的目标,我们可以执行以下操作:

[root@localhost ~]# readlink ~/audit.log
/var/log/audit/audit.log

获取符号链接的 Bash 脚本

我们可以创建一个简单的 bash 脚本,该脚本接受路径并列出所有符号链接及其目标文件或目录:

[root@localhost ~]# vim symlink.sh
#!/bin/bash
read -p "Provide the directory to evaluate: " target_dir
cd $target_dir
links=$(find . -maxdepth 1 -type l -ls | awk '{print $11}')
for link in $links
do
   echo "$link -> $(readlink $link)"
done

该脚本首先询问用户要获取的目录。然后,脚本转到提供的目录并找到目录中的所有符号链接,并将输出传递给awk命令。

awk 输出并定位符号链接,并将它们保存到一个名为 links 的变量中。

然后我们创建一个循环,抓取links变量中的每个链接,并使用 readlink 命令获取它们的目标位置。

最后,显示符号链接和目标目录。下面是一个示例输出:

[root@localhost ~]# ./symlink.sh
Provide 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

Bash 脚本实例:获取符号链接的目标位置Bash 脚本实例:获取符号链接的目标位置

总结

本文介绍了如何在 Linux 中使用符号链接的基础知识。然后我们创建了一个简单的脚本来查找指定目录中的符号链接并显示它们的源和目标位置。

网站栏目:Linux下符号链接的具体使用方法
网站链接:http://www.hantingmc.com/qtweb/news0/504950.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联