Linux重要概念之软链接和硬连接

当我们登陆linux系统后,在使用ls –l命令列出目录下的文件时。有一些文件的显示格式是如下形式的:

lrwxrwxrwx.  1 root root      7 Jul 25 09:18 rc -> rc.d/rc

这是什么鬼,初次接触的话,会有种很奇怪的感觉,不知道这个文件为啥跟其它文件显示形式不一样。当我们对linux文件类型有所了解之后就会很容易明白这类文件就是所谓的软链接文件。

在linux系统中除了像上边显示的那样的软链接文,还有另外一种链接叫做硬连接。硬连接如同一个人有连个名字,无论叫哪个名字时,人的各种生理数据都不会发生改变。硬连接也是一样,它随源文件内容的增减而发生对应的内容更改。

软链接和硬连接的区别:

硬连接:

创建硬链接会增加额外的记录项以引用文件

对应于同一文件系统上的一个物理文件

每个文件引用相同的inode

创建时链接数递增

删除问价时:

rm命令递减计数的链接

文件要存在,至少一个链接数

当链接数为零时,该文件被删除

不能跨越驱动器或分区

语法:ln filename [linkname]

                 [[email protected] test]# ll
                total 8
                drwxr-xr-x   2 root root 4096 Jul 31 17:56 .
                dr-xr-x---. 27 root root 4096 Jul 31 17:55 ..
                [[email protected] test]# touch hardlink.txt
                [[email protected] test]# ll
                total 8
                drwxr-xr-x   2 root root 4096 Jul 31 17:56 .
                dr-xr-x---. 27 root root 4096 Jul 31 17:55 ..
                -rw-r--r--   1 root root    0 Jul 31 17:56 hardlink.txt
                [[email protected] test]# ln hardlink.txt hardlink1.txt 
                [[email protected] test]# echo "aaaaaa" > hardlink.txt 
                [[email protected] test]# cat hardlink.txt 
                aaaaaa
                [[email protected] test]# cat hardlink1.txt 
                aaaaaa
                [[email protected] test]# rm hardlink
                rm: cannot remove `hardlink‘: No such file or directory
                [[email protected] test]# rm hardlink.txt 
                rm: remove regular file `hardlink.txt‘? y
                [[email protected] test]# cat hardlink1.txt 
                aaaaaa
                [[email protected] test]#
                [[email protected] test]# mkdir hardlink
                [[email protected] test]# ln hardlink hardlink2
                ln: `hardlink‘: hard link not allowed for directory
                [[email protected] test]#

软链接:

一个符号链接指向另一个文件

ln –s会显示链接的名称和引用的文件

一个符号链接的内容是它引用文件的名称

目录也可以进行软链接

可以跨分区

指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增减或减少

目标文件inode的引用计数;

语法:ln  -s filename [linkname]

                [[email protected] test]# touch symbolic.txt
                [[email protected] test]# mkdir symbolic
                [[email protected] test]# cp -r /tmp/* symbolic
                [[email protected] test]# ln -s symbolic.txt symbolic1.txt
                [[email protected] test]# ln -s symbolic symbolic1
                [[email protected] test]# ls -l
                total 4
                drwxr-xr-x 10 root root 4096 Jul 31 18:01 symbolic
                lrwxrwxrwx  1 root root    8 Jul 31 18:03 symbolic1 -> symbolic
                lrwxrwxrwx  1 root root   12 Jul 31 18:01 symbolic1.txt -> symbolic.txt
                -rw-r--r--  1 root root    0 Jul 31 18:00 symbolic.txt
                [[email protected] test]# rm -f symbolic.txt 
                [[email protected] test]# ls -l
                total 4
                drwxr-xr-x 10 root root 4096 Jul 31 18:01 symbolic
                lrwxrwxrwx  1 root root    8 Jul 31 18:03 symbolic1 -> symbolic
                lrwxrwxrwx  1 root root   12 Jul 31 18:01 symbolic1.txt -> symbolic.txt
                [[email protected] test]#

总结:从上边可以看出硬连接文件有两个限制:1.不允许给目录创建硬连接;2.只允许在同一个文件系统中的文件之间才能创建链接。而软链接没有上面两个限制,可以对目录进行链接,同时也可以跨越分区进行链接。硬连接源文件删除,链接文件仍然可以使用,软链接源文件删除,链接文件失效。相同点是,仅链接文件的删除,不会影响源文件的内容。

时间: 2024-10-13 20:17:21

Linux重要概念之软链接和硬连接的相关文章

linux的软链接和硬连接的区别

为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 与软链接.链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径.增加权限安全及节省存储等好处.若一个 inode 号对应多个文件名,则称这些文件为硬链接.换言之,硬链接就是同一个文件使用了多个别名.链接可由命令 ln 创建. 文字描述:描述Linux下软链接和硬链接的区别在Linux系统中,链接分为两种,一种是硬链接(hard link),另一种称为符号链接或软链接(soft link 或symbolic Link).①

特殊权限set_uid /特殊权限set_gid/特殊权限stick_bit/软链接文件/硬连接文件

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件 特殊权限set_uid(s权限用户user权限) [[email protected]_1 ~]# ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd 权限中的s 就是特殊权限 set_uid psswd 命令支持普通用户改自己的密码 [[e

Linux文件系统简介和软链接和硬链接的区别

Linux有着极其丰富的文件系统,大体可分为如下几类: 网络文件系统:如nfs.cifs等: 磁盘文件系统:如ext3.ext4等: 特殊文件系统:如prco.sysfs.ramfs.tmpfs等: 一.Linux系统中一切皆文件(除进程以外) Linux系统的顶层目录结构如下 1 / 根目录 2 3 ├── bin 存放用户二进制文件 4 5 ├── boot 存放内核引导配置文件 6 7 ├── dev 存放设备文件 8 9 ├── etc 存放系统配置文件 10 11 ├── home 用

Linux中怎么看出文件是硬连接?

可以通过查询文件的硬链接数来判断,如果硬链接数大于1则说明文件是硬链接. 查看硬链接是可以使用命令"ls -l",返回结果的第二列为硬链接数. 用法示例: 可以看到file1和file3的硬链接数都大于1,为硬链接. 值得注意的是,硬链接和源文件是无法区分的,两个文件具有相同的大小.创建时间等信息.

Linux学习笔记(九)set_uid、set_gid、stick_bit、软链接文件、硬连接文件

一. 特殊权限set_uid 只能作用于二进制可执行文件,可以使用户暂时拥有文件所有者的权限例如:普通没有root权限,但是修改密码的命令passwd又需要root权限,所以,passwd命令被赋予set_uid权限,使普通用户修改密码时可以暂时获取root权限去修改密码: 用法为 chmod u+s /usr/bin/passwd 二. 特殊权限set_gid 与set_uid用法类似作用于文件时,可以使用户暂时拥有文件所属组的权限,作用于文件夹时,在文件夹内新建文件或者文件夹时,新建文件或文

Linux下的软链接与硬链接

首先聊聊Linux中使用哪个命令创建链接文件,然后咱们在聊聊软链接和硬链接的区别. 使用ln命令可以创建某个文件的链接文件 用法:ln [-s -v] src dest 创建一个硬连接文件:ln 原文件 硬连接文件 硬链接与源文件的inode号相同,使用stat命令可以查看文件的元数据信息. 创建一个软连接文件:ln -s 原文件 软连接文件 加-s表示创建软连接(符号链接) 注意:创建连接文件时,指定源文件时, "原文件的路径"可以是绝对路径也可以是相对路径,但是要注意,如果&quo

Linux系统的软链接与硬链接有什么区别?

Linux系统中的文件都文件名和数据,在 linux 上面被分为两个部分:元数据与数据.用户数据,即文件数据块( data block ),数据块是记录文件真实内容的地方,而元数据是文件的附加属性,如大小,创建时间,所有者等信息.在 Linux 中,元数据中的 inode 号( inode 是文件的元数据的一部分,但其不包含文件名, inode 号即索引节点号)才是文件的唯一标识而不是文件名.文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据快.下图为 程序通过

Linux下软链接与硬链接的区别

Linux下软链接与硬链接的区别 Linux中的文件都文件名和数据,在linux上面被分为两个部分:元数据与数据.用户数据,即文件数据块(data block),数据块是记录文件真实内容的地方,而元数据是文件的附加属性,如大小,创建时间,所有者等信息.在Linux中,元数据中的inode号(inode是文件的元数据的一部分,但其不包含文件名,inode号即索引节点号)才是文件的唯一标识而不是文件名.文件名仅是为了方便人们的记忆和使用,系统或程序通过inode号寻找正确的文件数据快.下图为程序通过

linux软链接和硬链接

1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. 在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问. QUOTE: ln [options] existingfile newfileln[options] existingfile