linux下的连接文件——软连接和硬连接的区别

软连接可以理解为,源文件的快捷方式,软连接文件记录的是源文件的路径,占用空间非常小。当把源文件删除后,那么软连接文件也就变成一个坏文件了,不能使用了。


硬连接和源文件的inode信息是一模一样的,可以说硬链接文件只是复制了一份源文件的inode信息,在我们看来硬链接文件和源文件没有什么区别,删除任何一个文件对方都不受影响,唯一的是少了一份inode,硬链接只能在同一个分区下创建,而软连接不受限制。硬链接文件和源文件虽然看起来像是两个文件,但是只占用一个文件的磁盘空间。

软连接

 ln -s     源文件或目录    目标文件或目录

创建软连接最好加绝对路径

[ [email protected] ~]# ln -s /root/3.txt /tmp/21.txt  
[ [email protected] ~]# ls -l /tmp/21.txt  
lrwxrwxrwx. 1 root root 11 3月  20 06:14 /tmp/21.txt -> /root/3.txt

目录软连接,目标目录不制定的话,会自动创建一个源目录同名的目录;

[[email protected] ~]# ln -s /root/aa /tmp/
[ [email protected] ~]# ls -l /tmp/aa 
lrwxrwxrwx. 1 root root 8 3月  20 06:19 /tmp/aa -> /root/aa

pwd -P    显示物理路径,真正的路径

pwd -L    显示逻辑路径,软连接的路径,默认pwd显示的是逻辑路径;

[[email protected]~]# cd /tmp/aa/
[[email protected] aa]# pwd
/tmp/aa
[[email protected] aa]# pwd -P
/root/aa 
[[email protected] aa]# pwd -L 
/tmp/aa


硬连接   

ln 源文件 目标文件     

ln 不加s 就是创建硬连接

1、硬连接不可以作用于目录。因为每个目录下面都会有一个.和..也就是说每个目录下面的子目录肯定会有它本身和它上一级目录,那么一旦设置了硬链接则会造成一种混乱,设置会导致死循环。硬链接的文件并不会占用空间大小,它只是复制了该文件的一份inode信息。

2、硬连接不可以跨分区链接。 因为inode的生成是在分区格式化划分好的。一个分区的inode是各不相同的。每个分区都有inode.有相同的inode会引起文件的混乱。

[ [email protected] ~]# ln yong yong1 ln: "yong": 不允许将硬链接指向目录
[ [email protected] ~]#  ln 3.txt 4.txt
[ [email protected] ~]# ls -l 3.txt 4.txt  
-rw-r--r--. 2 root root 0 3月  20 06:08 3.txt 
-rw-r--r--. 2 root root 0 3月  20 06:08 4.txt 
[ [email protected] ~]# ls -li 3.txt 4.txt  130736 
-rw-r--r--. 2 root root 0 3月  20 06:08 3.txt 130736 
-rw-r--r--. 2 root root 0 3月  20 06:08 4.txt 
[ [email protected] ~]#  ln 3.txt /boot/4.txt
ln: 创建硬链接"/boot/4.txt" => "3.txt": 无效的跨设备连接

硬连接文件2个文件具有相同的inode值,可以随便删除其中的一个;

时间: 2024-11-12 14:38:24

linux下的连接文件——软连接和硬连接的区别的相关文章

Linux下的压缩文件剖析 (tar/gzip的区别)

Linux下的压缩文件剖析 对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rap.可是Linux就不同了,它有.gz..tar.gz.tgz.bz2..Z..tar等众多的压缩文件名,此外windows下的.zip和.rar也可以在Linux下使用,不过在Linux使用.zip和.rar的人就太少了.本文就来对这些常见的压缩文件进行一番小结,希望你下次遇

Linux 软连接与硬连接

对于一个文件来说,有唯一的索引接点与之对应,而对于一个索引接点号,却可以有多个文件名与之对应.因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件.注意在Linux下是一切皆文件的啊,文件夹.新加的硬盘 ...都可以看着文件来处理的啊. 连接有软连接和硬连接(hard link)之分的,软连接(symbolic link)又叫符号连接.符号连接相当于Windows下的快捷方式. 硬连接可以看作是同一个文件的不同命名. 不可以对文件夹建立硬连接的,我们通常用的还是软连接比较多. eg: ln

详解「复制、拷贝、替身、软连接、硬连接」区别

在mac文件系统中可以对一个文件进行标题中的这5种操作,操作的结果都是生成一份副本,但是其中却有很大区别. 首先操作上的区别很明显 生成 软连接.硬连接 是通过命令行操作的 生成 替身.复制.拷贝 一般是通过finder进行操作的,右键某个文件,菜单中选择(其实复制也可以用命令cp来实现,跟finder操作是一个效果) 然后其中的 复制和拷贝 跟另外三种方式本质上不同,它们之间的区别也很好理解 他们的共同点是生成一份文件的副本,副本和原文件是两个独立的文件,两者的关系只有在生成时是关联的,在生成

Linux软连接与硬连接 .

http://blog.csdn.net/ningxinghai/article/details/7342338 Linux的软连接相当于window系统的快捷方式,如我们桌面的QQ等. 硬连接相当于复制一个文件,但不同的是两个文件内容同步.如创建一个文件A的硬连接B, 如果我修改A里面的内容,同时B中的内容也会更新. 创建软连接的命令:ln -s  源文件  目标文件 创建硬连接的命令:ln   源文件  目标文件 硬连接不能跨区创建,比如/home 目录与/ect目录不在一个分区,a这个文件

Linux软连接和硬连接

软连接 命令: ln -s 原文件 目标文件 特征: 1.相当于windows的快捷方式 2.只是一个符号连接,所以软连接文件大小都很小 3.当运行软连接的时候,会根据连接指向找到真正的文件,然后执行 4.所有软连接文件的权限是777,而真正的权限是由指向的那个文件决定的 5.原文件丢失,软连接无法访问,会报找不到的错误 6.ls -al以后,软连接后面箭头指向的是原文件 硬连接 命令: ln 原文件 目标文件 特征: 1.原文件和连接文件的属性完全一样 2.连接文件和原文件的关系类似于:复制+

linux中的软连接和硬连接

1. 创建软连接的方法 ln -s /path/to/original /path/to/linkName 当我们对软连接文件进行修改后,对应的修改也会反映到原始的文件(反之亦然). 当我们删除软连接文件时,原始文件不会做任何改变. 当我们删除原始文件时,软连接文件仍然存在,但是会指向一个不存在的文件,这种软连接叫做悬挂的连接. 2. 软件硬连接的方法 ln /path/to/original.file /path/to/link.file 3. 软连接和硬连接的不同 硬连接: 仅仅可以连接到一

Linux下创建和删除软、硬链接 可临时处理空间不足

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

软连接和硬连接

ln命令 该命令在文件之间创建链接.这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称.对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题. 如果链接指向目录,用户就可以利用该链接直接进入被链接的目录而不用打一大堆的路径名.而且,即使我们删除这个链接,也不会破坏原来的目录. 语法:ln [选项] 目标 [链接名] ln [选项] 目标 目录 链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).

Service系统服务(二):补充应用技巧、软连接与硬连接、man手册、zip备份、vim效率操作、自定义yum软件仓库、发布及测试yum仓库、编译安装软件包

一.补充应用技巧 目标: 本例要求掌握在运维中比较常用的一些扩展命令技巧的使用,完成下列小技巧操作: 1> 采用数值形式将目录/root的权限调整为 rwx------   2> 将记录的历史命令条数更改为 200 条   3> 统计 /boot./etc/pki 目录占用的空间大小   4> 以格式"yyyy-mm-dd HH:MM" 显示系统时间 方案: date日期时间工具: 1> 显示日期时间:date.date +"%Y-%m-%d %