头图

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

我们都熟悉 Linux 中的符号链接,通常称为符号链接或软链接,符号链接是指向任何文件系统中的另一个文件或目录的特定文件。本文将介绍 Linux 中符号链接的基础知识,并创建一个简单的 bash 脚本来获取符号链接的目标位置。符号链接的类型主要有两种类型的符号链接,即:硬链接:硬链接是指向文件系统中的文件或目录的直接指针。硬链接只能在与目标文件相同的文件系统中创建。软连接:软链接是文件或目录的间接快捷方式,可以存在于文件系统中的任何位置。软链接可以指向不同文件系统中的文件。如何创建符号链接要在 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 脚本我们可以创建一个简单的 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

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


Linux资讯速推
《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

22 声望
16 粉丝
0 条评论
推荐阅读
CentOS7/8 安装 5+ 以上的Linux kernel
CentOS以稳定著称,稳定在另外一方面就是保守。所以CentOS7还在用3.10,CentOS8也才是4.18。而当前最新的Linux Kernel都更新到6.0 rc3了。其他较新的发行版都用上了5.10+的版本。本文简单介绍如何在CentOS7、8上...

刘遄阅读 554

封面图
如何选择适合你的微服务 API 网关:对比 Kong、APISIX、Tyk、Apigee 和其他网关
API 网关并非一个新兴的概念,在十几年前就已经存在了,它的作用主要是作为流量的入口,统一的处理和业务相关的请求,让请求更加安全、快速和准确的得到处理。它有以下传统的功能:

API7_技术团队8阅读 9k评论 2

Nginx常用配置及和基本功能讲解 | 京东云技术团队
作者:京东物流 殷世杰Nginx已经广泛应用于J-one和Jdos的环境部署上,本文对Nginx的常用的配置和基本功能进行讲解,适合Nginx入门学习。1 核心配置找到Nginx安装目录下的conf目录下nginx.conf文件,Nginx的基本功...

京东云开发者5阅读 573

封面图
又一款内存数据库横空出世,比 Redis 更强,性能直接飙升一倍!杀疯了
KeyDB是Redis的高性能分支,专注于多线程,内存效率和高吞吐量。除了多线程之外,KeyDB还具有仅在Redis Enterprise中可用的功能,例如Active Replication,FLASH存储支持以及一些根本不可用的功能,例如直接备份...

民工哥4阅读 1.6k评论 2

封面图
蚂蚁安全科技 Nydus 镜像加速实践
蚂蚁安全科技 Nydus 镜像加速实践原创 曦栖 金融级分布式架构文|蚂蚁集团 ZOLOZ 团队使用全球领先安全科技,为用户和机构提供安全、便捷的安全风控解决方案。本文 6386 字 阅读 12 分钟背景简介ZOLOZ[1]是蚂蚁集...

SOFAStack1阅读 3.7k

封面图
Win10 安装Docker以及Jenkins(超级详细篇)
安装Docker下载地址:[链接] ,按照它的指引教程,无脑下一步即可。安装成功后电脑会重启。打开docker桌面端,会显示进入链接,下载WSL 安装包进行无脑安装即可。安装 Linux 内核更新包 (重启电脑)重启 Docker ...

九旬3阅读 1k

http 和 https 的通信过程及区别
🎈 两者的区别端口: http 端口号是80, https 端口号是443传输协议: http 是超文本传输协议,属于明文传输; https 是安全的超文本传输协议,是经过 SSL 加密后的传输协议安全性: https 使用了 TLS/SSL 加密,...

tiny极客2阅读 3k评论 2

封面图

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

22 声望
16 粉丝
宣传栏