linux资讯速推-编程思维

我们都熟悉 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 中使用符号链接的基础知识。然后我们创建了一个简单的脚本来查找指定目录中的符号链接并显示它们的源和目标位置。

版权声明:本文版权归作者所有,遵循 CC 4.0 BY-SA 许可协议, 转载请注明原文链接
https://segmentfault.com/a/1190000043355116

nginx与lua(7)-编程思维

您好,我是湘王,这是我的博客园。值此新春佳节,我给您拜年啦~祝您在新的一年中所求皆所愿,所行皆坦途,展宏“兔”,有钱“兔”,多喜乐,常安宁!       软件开发中,除了进程和线程,还有协程的概念。但是在搞清楚协程这个概念之前,需要明白什么是进程和线程。 进程一般是应用程序的启动实例,进程拥有代码和打开的文件资源、数

nginx实现负载均衡功能-编程思维

一、什么是Nginx? Nginx是一款轻量级的Web 服务器、反向代理服务器、电子邮件(IMAP/POP3)代理服务器。 二、Nginx的优点: 高并发连接:官方测试Nginx能够支撑5万并发连接,实际测试可达到3万左右,每天可以处理亿次访问量;原因是:采用最新epoll(linux2.6内核)和kqueue(fr

linux资讯速推-编程思维

本文介绍如何在FreeBSD 13系统中安装Nginx、MySQL、和PHP服务。系统环境FreeBSD 13.0-RELEASE更新系统在安装任何软件之前更新系统是一个好习惯,以便检查系统更新:root@freebsd:~ # freebsd-update fetchroot@freebsd:~ # freebsd-

linux资讯速推-编程思维

在某些情况下,我们希望从命令行下载特定或一组 RPM 包而不安装它。虽然我们可以使用 wget 命令下载,但 wget 不会下载安装包的依赖项。在 CentOS 8 中DNF(或 yum)是一个命令行包管理工具。使用 DNF我们可以安装、更新和删除 rpm 包。除此之外,它还可以用于下载软件包以及依赖项,而无需安装它们

spacewander-编程思维

众所周知,UDP 并不像 TCP 那样是基于连接的。但有些时候,我们需要往一个固定的地址发送多个 UDP 来完成一个 UDP 请求。为了保证服务端能够知道这几个 UDP 包构成同一个会话,我们需要在发送 UDP 包时绑定某个端口,这样当网络栈通过五元组(协议、客户端IP、客户端端口、服务端IP、服务端端口)进行区分时,

个人文章-编程思维

背景由于不可描述的原因,相对于以前,最近在更加频繁的迁移服务器,简单的 Shell 脚本已经不能满足需求了,于是将所有的项目 Docker 化。部分不含敏感配置的项目准备放到 DockerHub 上面,但是在 docker push 的时候报错:denied: requested access to the resou

个人文章-编程思维

中英文对照表英文英文 - K8S CRD中文备注certificatesCertificate证书certificates.cert-manager.io/v1certificate issuersIssuer证书颁发者issuers.cert-manager.io ClusterIssuer集群证书颁发者cluste

个人文章-编程思维

镜像获取镜像docker pull查看镜像信息docker imagesdocker inspect <images id> # 获取镜像的详细信息搜寻镜像docker search删除镜像docker rmi当一个镜像拥有多个标签,docker rmi 只是删除该镜像指定的标签,并不影响镜像文件当镜像只

个人文章-编程思维

概述之前基于 GitLab + Jenkins 实现了简单的 NGINX 的自动化发布。具体包含如下的组件:GitLab包括 GItLab 的 WebHook;Jenkins 及其插件:Generic Webhook TriggerPublish Over SSH🧠疑问:为什么不用 Ansible?答:这里说明下,之所

个人文章-编程思维

容器操作系统类型Busybox集成了一百多个最常用 Linux 命令和工具的软件工具箱.包含cat echo grep find mount telnet 等Busybox 是Linux 系统的瑞士军刀Debian/UbuntuCentOS/FedoraCoreOS官网链接Linux发行版, 针对容器技术.创建自定义操

小菜良记-编程思维

未来已来,只是不均衡地分布在当下大家好,我是菜农,欢迎来到我的频道。本文共 2187字,预计阅读 10 分钟用过 Linux 的小伙伴都知道,在Linux系统中包含着大量的文件,绝大部分情况下,我们都是通过 CLI 的方式与Linux进行交互,这就会面临一个问题,当我们需要查找一个文件的时候却迟迟无从下手,不知道该如何