制作文件间链接

news2024/11/27 22:27:43

制作文件间链接

在这里插入图片描述

管理文件间链接

硬/软链接

创建指向同一个文件的多个名称。

创建硬链接

从初始名称到文件系统的数据,每个文件都以一个硬链接开始。当创建指向文件的新硬链接时,也会创建另一个指向同一数据的名称。新硬链接与原始文件名作用相同。一经创建,新硬链接与文件的原始名称便别无二致。

[root@servera ~]# pwd
/root
[root@servera ~]# touch newfile.txt
[root@servera ~]# ls -l  newfile.txt
-rw-r--r--. 1 root root 0 Jul 16 04:53 newfile.txt

newfile.txt 链接数为1,绝对地址/root/newfile.txt

使用ln 命令创建一个指向现有文件的新硬链接。至少需要两个参数,即现有文件的路径已经要创建的硬链接的路径。

在/tmp目录中为现有文件newfile.txt创建硬链接

[root@servera ~]# ls -l newfile.txt /tmp/newfile-link2.txt
-rw-r--r--. 2 root root 0 Jul 16 04:53 newfile.txt
-rw-r--r--. 2 root root 0 Jul 16 04:53 /tmp/newfile-link2.txt

如果想知道两个文件是否为彼此的硬链接,使用ls -i 列出文件的索引节点编号。如果文件位于同一系统,且索引编号系统,那么这两个文件就是指向同一数据的硬链接。


[root@servera ~]# ls -il newfile.txt /tmp/newfile-link2.txt
33579695 -rw-r--r--. 2 root root 0 Jul 16 04:53 newfile.txt
33579695 -rw-r--r--. 2 root root 0 Jul 16 04:53 /tmp/newfile-link2.txt

即使原始文件删除,只要存在至少一个硬链接,该文件内容依然可用。只有删除最后的硬链接,才会将数据从存储中删除。


[root@servera ~]# rm -f newfile.txt
[root@servera ~]# ls -l /tmp/newfile-link2.txt
-rw-r--r--. 1 root root 6 Jul 16 05:03 /tmp/newfile-link2.txt
[root@servera ~]# cat /tmp/newfile-link2.txt
Hello

硬链接局限性

  • 只用于常规文件,不能使用ln来创建指向目录或特殊文件的硬链接
  • 当两个文件都位于同一文件系统时,才能使用硬链接。

列出位于不同文件系统上的目录


[root@servera ~]# df
Filesystem            1K-blocks    Used Available Use% Mounted on
devtmpfs                 874504       0    874504   0% /dev
tmpfs                    894592       0    894592   0% /dev/shm
tmpfs                    894592    8900    885692   1% /run
tmpfs                    894592       0    894592   0% /sys/fs/cgroup
/dev/mapper/rhel-root  17811456 1884916  15926540  11% /
/dev/nvme0n1p1          1038336  225396    812940  22% /boot
tmpfs                    178916       0    178916   0% /run/user/0

两个不同的Mounted On目录及其子目录的文件位于不同的文件系统上。

创建软链接

ln -s 创建,软链接不是常规文件,而是指向现有文件或目录的特殊文件。

  • 可以链接不同文件系统上的两个文件
  • 可以指向目录或特殊文件,不限于常规文件

/tmp/newfile-link2.txt创建新的软链


[root@servera ~]# ln -s /tmp/newfile-link2.txt /tmp/newfile-symlink.txt
[root@servera ~]# ls -l /tmp/newfile-link2.txt  /tmp/newfile-symlink.txt
-rw-r--r--. 1 root root  6 Jul 16 05:03 /tmp/newfile-link2.txt
lrwxrwxrwx. 1 root root 22 Jul 16 05:17 /tmp/newfile-symlink.txt -> /tmp/newfile-link2.txt
[root@servera ~]# cat /tmp/newfile-symlink.txt
Hello

当原始常规文件被删除后,软链接依然指向该文件,但目标消失。指向缺失的文件的软链成为"悬挂的软链接"


[root@servera ~]# rm -rf /tmp/newfile-link2.txt
[root@servera ~]# ls -l  /tmp/newfile-symlink.txt
lrwxrwxrwx. 1 root root 22 Jul 16 05:17 /tmp/newfile-symlink.txt -> /tmp/newfile-link2.txt
[root@servera ~]# cat /tmp/newfile-symlink.txt
cat: /tmp/newfile-symlink.txt: No such file or directory

软链可以指向目录。发挥和目录一样的作用。通过cd更改为软链接将是当前的工作目录变成链接目录。一些工具可以跟踪使用软链接到达当前工作目录的事实。例如,cd将使用软链接的名称更新当前工作目录。 -P更新到实际目录名称。

创建指向/etc目录的软链


[root@servera ~]# ln -s /etc /root/configfiles
[root@servera ~]# cd /root/configfiles/

[root@servera configfiles]# cd -P /root/configfiles/
[root@servera etc]# pwd
/etc
[root@servera etc]# cd /root/configfiles/
[root@servera configfiles]# pwd
/root/configfiles

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/759631.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Maya适合哪个工作站?

Autodesk Maya 提供多种功能,可以适应电影、游戏和建筑等不同行业的需求。定制的 Autodesk Maya 工作站可以帮助您提高行业领先的 3D 计算机动画、建模、模拟和渲染软件的工作效率和用户体验。 根据您的特定需求定制的快速、强大的工作站可以帮助您充分利用 Maya 工…

高薪Offer收割机之Redis分布式锁

锁在应用开发中使用非常广泛,哪些场景需要使用锁呢? 我们先来看抢购优惠卷的场景,代码如下: public void rushToPurchase() throws InterruptedException {//获取优惠券数量Integer num = (Integer) redisTemplate.opsForValue().get(“num”);//判断是否抢完if (null == n…

[Ipsc2009]Let there be rainbows!

Description HY Star是一个处处充满和谐,人民安居乐业的星球,但是HY Star却没有被评上宇宙文明星球,很大程度上是因为 星球的形象问题。HY Star由N个国家组成,并且在一些国家之间修建了道路以方便交流。由于HY Star是一个和谐的 星球&#x…

【运维】第04课:入口网关服务注册发现-Openrety 动态 uptream

本课时,我将带你一起了解入口网关服务的注册发现,并使用 OpenResty 实现一套动态 Upstream。 课前学习提示 基于本课时我们将要学习的内容,我建议你课前先了解一下 Nginx 的基础,同时熟悉基础的 Lua 语言语法,另外再回顾一下 HTTP 的请求过程,对于 Nginx 的负载均衡基本…

按键控制流水灯方向——FPGA

文章目录 前言一、按键二、系统设计1、模块框图2、RTL视图 三、源码四、效果五、总结六、参考资料 前言 环境: 1、Quartus18.0 2、vscode 3、板子型号:EP4CE6F17C8 要求: 按键1按下,流水灯从右开始向左开始流动,按键2按…

习题-Java网络编程

目录 1.TCP-对象 2.UDP​​​​​​​​​​​​​​ 1.TCP-对象 利用TCP传输对象信息,需要对对象进行实例化 User类: package dh09.demo02;import java.io.Serializable;public class User implements Serializable {private String name;private St…

高并发的哲学原理(九)-- 细数四代分布式数据库并拆解

高并发的哲学原理(九)-- 细数四代分布式数据库并拆解 TiDB 和 OceanBase(主从、中间件、KV、计算与存储分离、列存储、CAP定理) 本文大约 15000 字,阅读需要 50 分钟。 上一篇文章啃硬骨头差点把我牙给崩了&#xff0c…

提升C++操作Json的开发效率

一、背景 在C项目开发中,不同的服务之间会定义通讯接口,接口格式定义中的通讯数据往往是json格式的。为了快速开发,我的需求如下: 1.定义好通讯接口后,就定义好了交互的json内容格式。我希望有工具可以一键将json内容…

x86架构ubuntu18下运行PS模拟器ePSXe

0. 环境 i7 虚拟机ubuntu18(ubuntu22不行,会提示CURL_OPENSSL_3 not found) 1. 安装依赖 sudo apt-get install libsdl-ttf2.0-0 sudo apt-get install libcurl3 2. 获取可执行文件 mkdir ePSXe cd ePSXe wget http://www.epsxe.com/files/…

MAYA精灵粒子一

group1.rotateYframe*10; particleShape1.spriteTwistPPrand(-90,90); 少 一个

Debug工具Trace32的ARM内存访问类型详解

关于Trace32的访问类型的基本概念可以参考博文: Trace32使用教程-访问类型(Access Class)_SOC罗三炮的博客-CSDN博客 本文将以ARMv8为基础,详解Trace32的内存访问类型。 内存访问类型描述A绝对寻址(物理地址),即绕过…

实现复杂的按钮动画

今天主要是实现一个复杂的按钮提交动画效果&#xff0c;具体的关键变形环节如下&#xff1a; 初始环节 加载环节 展示结果环节 代码实现过程 1、html 页面机构 <button class"btn" data-btn>Submit</button> <div class"check_box">&…

初级与高级软件测试工程师的差距体现在哪些方面?如何成为高级测试工程师?

目录 初级测试工程师和高级测试工程师有什么区别或者差距呢&#xff1f; 一、不断的钻研 二、向同行或者他人学习 三、团队合作是更宽广的提升途径 四、了解你的客户和团队成员 软件测试工程师发展规划路线 我们都在努力追求卓越&#xff1a;希望在我们选择的职业中出类拔…

html2canvas将document DOM节点转换为图片,并下载到本地

html2canvas - Screenshots with JavaScripthttps://html2canvas.hertzen.com/了解一下&#xff0c;安装先 npm install --save html2canvas 用到的知识包括 前端用原生js编辑文件内容→创建生成文件(格式可以自定义)→下载文件_你挚爱的强哥的博客-CSDN博客会自动创建一个h…

服务器使用UDP通讯127.0.0.1测试成功连接服务器却通讯失败

首先看看本人情况 解释一下&#xff1a; 1&#xff1a;左边窗口是模拟服务程序&#xff0c;功能是收到消息后把消息打印出来&#xff0c;并把收到的消息再发回给发送消息的主机 2&#xff1a;右边窗口是模拟客户程序&#xff0c;功能是将输入的消息发送给服务程序的主机&…

【多线程例题】顺序打印abc线程

顺序打印-进阶版 方法一&#xff1a;三个线程竞争同一个锁&#xff0c;通过count判断是否打印 方法二&#xff1a;三个线程同时start&#xff0c;分别上锁&#xff0c;从a开始&#xff0c;打印后唤醒b 三个线程分别打印A&#xff0c;B&#xff0c;C 方法一&#xff1a;通过co…

前端笔记_OAuth规则机制下实现个人站点接入qq三方登录

文章目录 ⭐前言⭐qq三方登录流程&#x1f496;qq互联中心创建网页应用&#x1f496;配置回调地址redirect_uri&#x1f496;流程分析 ⭐思路分解⭐技术选型实现&#x1f496;技术选型&#xff1a;&#x1f496;实现 ⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本…

4.3.tensorRT基础(1)-实现模型的推理过程

目录 前言1. inference案例总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习 tensorRT 基础-实现模型的推理过程 课程大纲可…

深度学习——LSTM解决分类问题

RNN基本介绍 概述 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是一种深度学习模型&#xff0c;主要用于处理序列数据&#xff0c;如文本、语音、时间序列等具有时序关系的数据。 核心思想 RNN的关键思想是引入了循环结构&#xff0c;允许…

JavaBeans

Code eamples ① Product.java (JavaBean Class) ② Bean.java (Servlet) ③ complie javac -encoding utf-8 -d ..\classes -sourcepath . chapter15\Bean.java ④ Tomcat ⑤ http://localhost:8080/book/chapter15/bean