linux中软链接与硬链接有什么区别?

下面是我个人在学习linux/unix环境编程中总结的软链接与硬链接的区别,仅供参考

软链接可以跨文件系统,硬链接则不可以。

硬链接和源文件共享一个inode,这说明本质上还是同一个文件,而软链接与源文件拥有各自的inode,说明他们是独立的不同的文件。

再查看文件属性时(ls -l),软链接标明的时链接文件,而硬链接则没有标出,因为本质上硬链接和源文件是对等的。

inode节点中的链接指针数不同,创建硬链接时会使源文件的inode节点中的链接指针的数加一,而软链接不会。

文件大小不同,硬链接文件的大小与源文件相同,而软链接的大小时源文件文件名的长度。
软链接的文件中包含了源文件的路径信息,所以源文件移动位置时再访问该文件的软链接则会找不到源文件。而硬链接则可以随意移动。

软链接可以为一个目录创建一个软链接,而只有root用户才可以为目录文件创建硬链接。
可以为不存在的文件创建软链接,但不可以创建硬链接。

例子

1:软链接

命令:Ln –s /etc/inittab /test/inittab.soft

查看:ls –l /etc/initab /test/inittab.soft

发现软连接类似于windows的快捷方式,—>表示真实文件的地址

2:硬链接

命令: ln   /etc/inittab  /test/inittab.hard

查看: ls  -l  /etc/inittab  /test/inittab.hard

发现硬链接与真实文件的大小和创建日期完全相同,类似于copy,同步更新。

3:硬链接与拷贝的区别:

发现拷贝与真实文件的创建日期不同。

4: 若想复制时日期相同,可以通过命令:cp –p /etc/inittab  /test/inittab2

5:硬链接的同步更新

软连接类似于快捷方式,访问的就是源文件,所有肯定是跟源文件同步。

而硬链接类似于拷贝,但是却拥有同步更新的功能,再此我们可以验证。

首先在/test目录下创建文件link

(1)   分别穿件link的软连接文件和硬链接文件,link.soft  link.hard

(2)   向源文件link 写入数据

(3)   查看三个文件的内容

发现硬链接文件与源文件同步更新

6:删除源文件后,对硬链接和软连接的影响

软连接类似快捷方式,所有当源文件不存在时,它也无效。

而硬链接属于拷贝,仍然存在。

7:为什么硬链接可以同步更新?

同样创建了一个文件link 和它的软链接和硬链接文件,

通过命令ls –i  ,发现硬链接文件和源文件的i结点数字相同,而内核是根据文件的i结点来标识文件的,这两个文件的i结点相同,所有被认为是一个文件,所有同时写入和修改数据。

8:硬链接的要求

硬链接不能跨文件系统,即不能跨分区,类似于windows内不能将C盘的硬链接放在D盘。而软链接可以放在任何文件系统。

好了到此关于软链接与硬链接我估计各位也多少了解了一些了。

时间: 2024-09-17 03:23:01

linux中软链接与硬链接有什么区别?的相关文章

linux下如何创建和删除软链接和硬链接

在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问. 链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法.Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link).符号连接相当于Windows下的快捷方式. 一.硬链接 硬链接说白了是一个指针,指向文件索

Windows 的快捷方式,符号链接,软链接和硬链接

在我之前的印象中,Linux 下面的 ln 命令好像类似于 Windows 下面的快捷方式,但是在接触了 Windows 下面的 mklink 命令后,发现 Windows 下面的链接还是很强大的 Linux 下面的 ln 命令 linux 下面的 ln 命令还是很强大的,可以创建软链接和硬链接,使用方式如下: ln -s source dist        # 建立软连接 ln source dist            # 建立硬连接 关于 Linux 下面的软链和硬链,可以看看这篇文章

谈谈linux中flock、lockf和fcntl的区别_unix linux

首先flock和fcntl是系统调用,而lockf是库函数.lockf实际上是fcntl的封装,所以lockf和fcntl的底层实现是一样的,对文件加锁的效果也是一样的.后面分析不同点时大多数情况是将fcntl和lockf放在一起的.下面首先看每个函数的使用,从使用的方式和效果来看各个函数的区别.  1. flock 函数原型 int flock(int fd, int operation);  // Apply or remove an advisory lock on the open fi

Linux系统中ln命令创建软链接与硬链接的方法

Linux 系统下每创建一个文件,系统都会为此文件生成一个 index node 简称(inode) ,而每一个文件都包含用户数据(user data) 与 元数据(metadata) 用户数据里记录了文件的真正内容. 元数据里记录的是文件的附加属性,如 文件大小,创建时间,所有者等,其中 上面提到的 index node 就保存在元数据中.在linux 中文件名并不是文件的唯一标识,index onde 才是唯一标示,系统查找文件也是通过 index node 来查找内容数据块. 如何查看文件

Linux下的软链接和硬链接

1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接] 硬连接指通过索引节点来进行连接.在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index).在Linux中,多个文件名指向同一索引节点是存在的.一般这种连接就是硬连接.硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以

深入详解Linux 软链接 (符号链接)/ 硬链接

0X00 什么是链接文件 Linux 中的链接文件就相当于是 Windows 中的快捷方式,通过链接文件可以访问到链接指向的源文件.但是 Linux 下的链接文件和 Windows 中的快捷方式还是有一定的区别.Linux 中有两种链接文件硬链接和软连接也称为符号链接 在介绍链接文件之前先要介绍一下 Linux 文件系统中的 inode inode 是 Linux 文件系统中文件的唯一定位器,每一个文件都有一个 inode,也是唯一的,每一个 inode 唯一对应一个文件. 还要熟悉一下指针的问

linux中cat、more、less命令区别详解

众所周知linux中命令cat.more.less均可用来查看文件内容,主要区别有:cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况:more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能.more比cat强大,提供分页显示的功能,less比more更强大,提供翻页,跳转,查找等命令.而且more和less都支持:用空格显示下一页,按键b显示上一页.下面详细介绍这3个命令. cat   [plain] view p

linux中cat more less head tail 命令区别

1.cat 显示文件连接文件内容的工具: cat 是一个文本文件查看和连接工具.查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名. 比如:[root@localhost ~]# cat /etc/fstab 为了便于新手弟兄灵活掌握这个工具,我们多说一点常用的参数:1.0 cat 语法结构: cat [选项] [文件]... 选项  -A, --show-all           等价于 -vET  -b, --number-nonblank    对非空输出行编号  -e 

Linux中 cat more less xxd 显示文件的区别

  cat命令功能用于显示整个文件的内容单独使用没有翻页功能因此经常和more命令搭配使用,cat命令还有就是将数个文件合并成一个文件的功能. more命令功能:让画面在显示满一页时暂停,此时可按空格健继续显示下一个画面,或按Q键停止显示. less命令功能:less命令的用法与more命令类似,也可以用来浏览超过一页的文件.所不同的是less命令除了可以按空格键向下显示文件外,还可以利用上下键来卷动文件.当要结束浏览时,只要在less命令的提示符":"下按Q键即可. xxd命令 当我