首页 > 系统相关 >linux软链接和硬链接区别

linux软链接和硬链接区别

时间:2024-12-30 13:51:41浏览次数:6  
标签:node 区别 kafka 123 linux txt root 链接

在 Linux 中,软链接(Symbolic Link)硬链接(Hard Link) 是两种文件链接方式,主要区别在于它们的实现方式和行为。以下是详细的比较:


1. 定义

  • 软链接(符号链接)

    • 类似于 Windows 的快捷方式。
    • 是一个指向目标文件路径的特殊文件。
    • 删除目标文件后,软链接会变成无效链接(“断链”)。
  • 硬链接

    • 是目标文件的另一个指向,直接指向文件的存储数据块。
    • 删除目标文件后,硬链接仍然有效,文件内容不会丢失,直到所有硬链接被删除。

2. 主要区别

特性软链接硬链接
指向对象 文件路径(逻辑层面) 文件数据(物理层面,inode)
跨文件系统 支持 不支持
目录链接 可以指向目录(需超级用户权限) 通常不支持(部分系统可能支持)
目标文件删除影响 链接失效,成为“断链” 不影响,硬链接仍然有效
占用空间 仅占用存储路径信息的少量空间 与原文件共享相同 inode,无额外占用空间
文件权限和属性 与目标文件独立 与目标文件完全相同,视为同一文件

示例

[root@node-2 data]# touch 123.txt
# ext4文件系统分区不能链接到xfs文件系统
[root@node-2 data]# ln /kafka/data/123.txt /opt/ ln: 无法创建硬链接"/opt/123.txt" => "/kafka/data/123.txt": 无效的跨设备连接

# 测试硬链接 [root@node-2 data]# ln /kafka/data/123.txt /kafka/123.txt [root@node-2 data]# ll /kafka/ 总用量 20 -rw-r--r-- 2 root root 0 12月 30 13:40 123.txt drwxr-xr-x 2 root root 4096 12月 30 13:40 data drwx------ 2 root root 16384 12月 30 13:31 lost+found [root@node-2 data]# echo "hello world" > 123.txt [root@node-2 data]# pwd /kafka/data [root@node-2 data]# cat 123.txt hello world [root@node-2 data]# cd .. [root@node-2 kafka]# ll 总用量 24 -rw-r--r-- 2 root root 12 12月 30 13:42 123.txt drwxr-xr-x 2 root root 4096 12月 30 13:40 data drwx------ 2 root root 16384 12月 30 13:31 lost+found [root@node-2 kafka]# [root@node-2 kafka]# cat 123.txt hello world
# 测试删除硬链接源文件 [root@node-2 kafka]# rm data/123.txt rm:是否删除普通文件 "data/123.txt"?y

# 查看链接文件,依然有效 [root@node-2 kafka]# ll 总用量 24 -rw-r--r-- 1 root root 12 12月 30 13:42 123.txt drwxr-xr-x 2 root root 4096 12月 30 13:42 data drwx------ 2 root root 16384 12月 30 13:31 lost+found [root@node-2 kafka]# cat 123.txt hello world
# 软链接测试
[root@node-2 kafka]# ln -sv /kafka/123.txt /opt/ "/opt/123.txt" -> "/kafka/123.txt" [root@node-2 kafka]# ll /opt/ 总用量 1014916 lrwxrwxrwx 1 root root 14 12月 30 13:43 123.txt -> /kafka/123.txt [root@node-2 kafka]# ll 总用量 24 -rw-r--r-- 1 root root 12 12月 30 13:42 123.txt drwxr-xr-x 2 root root 4096 12月 30 13:42 data drwx------ 2 root root 16384 12月 30 13:31 lost+found [root@node-2 kafka]# echo kafka >> 123.txt [root@node-2 kafka]# cat 123.txt hello world kafka [root@node-2 kafka]# cat /opt/123.txt hello world kafka # 删除软链接源文件 [root@node-2 kafka]# rm 123.txt rm:是否删除普通文件 "123.txt"?y [root@node-2 kafka]# ll /opt/ 总用量 1014916 lrwxrwxrwx 1 root root 14 12月 30 13:43 123.txt -> /kafka/123.txt # 再次访问,软链接文件已失效 [root@node-2 kafka]# cat /opt/123.txt cat: /opt/123.txt: 没有那个文件或目录

 

标签:node,区别,kafka,123,linux,txt,root,链接
From: https://www.cnblogs.com/rtnb/p/18640873

相关文章

  • linux内核编译+QEMU编译+根文件系统制作
    一、安装相关依赖项(Linux内核和QEMU都包括)sudoaptinstalllibssl-devflexbisonpython3-devpipncurses-devellibglib2.0-devlibfdt-devninja-buildzlib1g-devlibpixman-1-devlibelf-devsudopipinstallsphinx编译qemu。官网:https://www.qemu.org/......
  • DAPP(去中心化应用程序)开发与 APP(应用程序)开发存在多方面区别
    #DAPP#APP#去中心化应用#web3#Dapp架构架构与技术基础APP:通常基于客户端-服务器架构,数据存储和业务逻辑主要依赖中心化服务器。例如,常见的社交APP微信,用户数据存储在腾讯的服务器上,服务器统一处理用户的登录、消息收发等业务逻辑。开发技术栈成熟,前端开发针对......
  • linux挂载samba客户端
    一、安装必要的软件包首先,需要确保系统上安装了Samba客户端软件包和cifs-utils工具。可以使用以下命令进行安装:sudoyuminstallsamba-clientcifs-utils-y二、创建挂载点目录挂载点是一个本地目录,用于挂载远程的Samba共享。可以使用mkdir命令创建一个挂载点目录,例如:sudo......
  • 公网全双工对讲机与普通公网对讲机的区别
    对讲机作为传统的通讯工具,经常被大家用到工作、生产中,对讲机也大致分为模拟对讲、数字对讲、公网对讲三类。模拟和数字对讲都是基于无线电频点进行自组网通话,差异是数字信号的对讲安全性更高,语音经过编码解码,不易串频,而公网对讲依托运营商物联网卡,利用公网(如4G/5G网络)进行语音......
  • linux切换nologin用户运行服务时环境变量的设置
    遇到问题:需要切换nologin用户运行服务,同时使得go程序崩溃时可以生成core。使用sudo-H-u$USER/bin/bash-c"nohup./server>/dev/null2>&1&"。发现设置的环境变量不生效。问题原因:shell没有继承当前用户的环境变量,sudo-E-H-u$USER/bin/bash-c,加入-E会尝试继承当......
  • linux 操作系统下last命令介绍和使用案例
    linux操作系统下last命令介绍和使用案例last命令是Linux系统中用于显示用户最近登录信息的工具。它通过读取/var/log/wtmp文件,提供有关用户登录和注销的详细记录,包括系统启动和关闭的信息。命令简介基本功能查看用户登录历史:显示当前和过去的用户登录记录。显示系统......
  • 在js中undefined和undeclared有什么区别?
    在JavaScript中,undefined和undeclared(未声明)之间的主要区别体现在它们如何与变量作用域和变量生命周期进行交互。undefined:当你声明了一个变量,但没有给它赋值时,这个变量的值就是undefined。你可以显式地将一个变量的值设置为undefined。undefined是一个JavaScript的全局对......
  • for-in与for-of有什么区别?
    在前端开发中,for-in和for-of是两种不同的循环结构,它们各自有特定的用途和区别。以下是它们之间的主要区别:迭代对象不同:for-in:主要用于遍历对象的可枚举属性(包括其原型链上的属性,除非对象自身和原型链的某个属性都是不可枚举的),其基本语法是for(variableinobject){stat......
  • 前端的token存在哪里?有什么区别吗?
    在前端开发中,token通常可以存放在以下几个位置:localStorage:优点:生命周期永久,除非用户显式在浏览器UI上清除,否则信息将一直存在。缺点:同一属性名的数据会被替换,且不同浏览器间无法共享信息。另外,如果存储敏感信息,可能会存在安全风险,因为用户或其他恶意脚本可能通过浏览器的开......
  • linux-软硬链接
    我们今天再来聊一下这个"软硬链接"的问题.目录1.软硬链接长什么样?2.软连接和硬链接的特征和应用2.1软连接特征及其应用?①软连接是什么?②软连接的应用1:快捷方式③软连接的应用2:方便维护库文件2.2硬连接特征及其应用?①硬链接是什么?②引用计数?③硬链......