前提必须清楚一点,当指向数据的文件个数为0 时,数据块就会被释放掉,硬链接相当于硬盘上一块数据的多个指针,而软链接相当于指向数据指针的指针。个人理解成下面的图例 左边的是硬链接,右边的是软链接,无论对于哪个链接文件的编辑操作最后都将转换到对数

前提必须清楚一点,当指向数据的文件个数为0 时,数据块就会被释放掉,硬链接相当于硬盘上一块数据的多个指针,而软链接相当于指向数据指针的指针。个人理解成下面的图例

左边的是硬链接,右边的是软链接,无论对于哪个链接文件的编辑操作最后都将转换到对数据块的操作上,这一点软硬链接是一样的,但是对于连接文件的删除就不一样了,对于硬链接文件,无论删除谁,只要还有其他硬链接存在,数据块就会继续存在,但是对于软链接中只要把指向该数据块的指针删除,指向数据块的指针个数就为0了,数据块就会被释放掉,同时 软链接文件也会失效

i=$(ls -i filename | awk '{print $1}'); find . -inum $i           在同目录下查找filename的硬链接文件

-------------------------------------------------------------------------------------------------------------------

本文试图清晰彻底的解释软链接和硬链接文件的区别

一 链接文件

链接有两种方式,软链接和硬链接。

1 软链接文件

软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。

**********链接文件甚至可以链接不存在的文件,这就产生一般称之为"断链"的问题(或曰“现象"),链接文件甚至可以循环链接自己。类似于编程语言中的递归。

用ln -s 命令可以生成一个软连接,如下:

[root@linux236 test]# ln -s source_file softlink_file

在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身。

2 硬链接文件

info ln 命令告诉您,硬链接是已存在文件的另一个名字(A "hard link" is another name for an existing file),这多少有些令人困惑。硬连接的命令是

ln -d existfile newfile

硬链接文件有两个限制

1)、不允许给目录创建硬链接;

2)、只有在同一文件系统中的文件之间才能创建硬链接。

***********对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。

***********这时,系统就“忘记”了它曾经是硬链接文件。而把他当成一个普通文件。

二 两者之间的区别

硬连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Number)。

在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。*******硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要

文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个

连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。

软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

三 个人体会

软链接是另一个文件,作用可以理解为一个指针,******作用在这个文件上的操作除了删除都直接转向实际指向文件,由于是一个真实的文件所以占用磁盘空间

硬链接可以认为不是一个文件,它只是实际文件的一个别名,它的作用是防止真实文件被误操作,给一个文件建立硬链接后,他们互为别名,删除其中任意一个,

这样用RM命令只会删除该别名,实际文件并不会被删除。只有链接数为0时,才会删除原始文件。

本文来自出处:http://blog.csdn.net/kension/archive/2009/01/17/3796603.aspx

http://www.examda.com/linux/fudao/20061121/084038901.html

首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。

链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。

一、硬链接

硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。可以用:ln命令来建立硬链接。语法:

用法: 第一种:为”existingfile”创建硬链接,文件名为”newfile”。第二种:在”directory”目录中,为”existingfile-list”中包含的所有文件创建一个同名的硬链接。常用可选[options] –f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接。

下面举一些例子:

注意在创建链接前,file1 显示的链接数目为1,创建链接后(1)file1和file1hard的链接数目都变为2;(2) file1和file1hard在inode号是一样的(3) file1和file1hard显示的文件大小也是一样。可见进行了ln命令的操作结果:file1和file1hard是同一个文件的两个名字,它们具有同样的索引节点号和文件属性,建立文件file1的硬链接,就是为file1的文件索引节点在当前目录上建立一个新指针。如下图,你可以删除其中任何一个,如rm

file2 ,每次只会删除一个指针,

链接数同时减一,只有将所有指向文件内容的指针,也即链接数减为0时,内核才会把文件内容从磁盘上删除。当前目录逻辑结构:(不好意思图没有显示出来)。

还可以在不同目录,但同一文件系统中建立文件的硬链接。设file1、file2在目录/home/longcheng/dir1中,下面的命令,在/home/longcheng中建立file2的硬链接。

下面的程序,是将dir1目录中所有文件,在目录dir2中建立硬链接

如果使用了 ln –f existingfile newfile,如果newfile已经存在,则无论原来newfile是什么文件,只用当前用户对它有写权限,newfile就成为exisitngfile的硬链接文件。

尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一下不足之处:(1)不可以在不同文件系统的文件间建立链接(2)只有超级用户才可以为目录创建硬链接。虽然很多树上说root用户可以创建,但是笔者在学习过程中发现即使是root用户也不能创建,我的系统是Redhat,内核2.4、2.6都试过,在其他系统中不知道是不是可以。

http://hi.baidu.com/doughtymild/item/43abc7139e01275f2a3e22a7

linux不允许将硬链接指向目录,linux 文件(目录)之软链接,硬链接 -相关推荐

  1. acl在内核里的位置_在Linux中使用ACL(访问控制列表)保护文件/目录

    作为一个系统管理 ,我们的首要任务将是保护和未经授权的访问安全的数据. 我们都知道我们设置使用一些像CHMOD,CHOWN,chgrp命令 ......等有用的Linux命令然而,这些缺省权限设置有一 ...

  2. linux 查看 pub文件夹,linux 文件/目录的属性及权限

    一.文件属性 1.文件属性查看 ls   -l   filename -     rw-r--r--.   1    kiosk    kiosk    4505     Mar 28 22:59   ...

  3. Linux文件/目录 所有者/所在组

    目录 文件/目录所有者 文件/目录所在组 上述的实践操作 文件/目录所有者 文件所有者:一般为文件的创造者,谁创建了该文件,就自然的成为文件的所有者.查看文件/目录的所有者 指令: ls-ahl 修改 ...

  4. EBB-4、忘记root密码;文件,目录权限

    一.账户操作 1.锁定账户: usermod: usermod -L afu : 锁定afu用户,该用户将无法登陆系统 注意:需要首先退出root用户,然后登陆afu这个用户,才会出现无法登陆.如果直 ...

  5. php实训ppt,PHP动态网站开发实例教程教学全套课件(刘万辉)配套资料 任务3:运用目录与文件实现投票统计.ppt...

    PHP动态网站开发实例教程教学全套课件(刘万辉)配套资料 任务3:运用目录与文件实现投票统计.ppt (18页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! ...

  6. linux不允许将硬链接指向目录,为什么 UNIX/Linux 不允许目录硬链 【翻译】

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 导语: 在学习Linux文件系统的硬链接和符号连接时,我也产生了这个疑问.搜索找到几篇中文资料,总感觉像是隔靴搔痒,似懂 ...

  7. linux目录和链接的区别,Linux 下软链接和硬链接的区别

    在 Linux 系统中,一切都是文件,然而为了区分不同类型的事物,我们有了: 普通文件 目录文件 链接文件 设备文件 在之前的文章<阿里面试题 | Nginx 所使用的 epoll 模型是什么? ...

  8. linux目录硬链接,linux查看硬链接对应的所有文件

    在linux中,链接文件分为硬链接和软链接文件两种,其中硬链接通过ln source_file dist_file建立,软链接通过ln -s source_file dist_file建立. 软硬链接 ...

  9. linux中硬链接文件,科学网—Linux:文件的符号链接和硬链接 - 刘洋洋的博文

    参考:中国大学MOOC课程<Linux系统管理>,授课教师:颜晨阳. 推荐阅读: t.cn/RLXkhpc 1 符号(symbolic)链接 与Windows的快捷方式很像,这些文件很小, ...

最新文章

  1. linux 索引代码的函数定义,Linux网络接口操作之if_nameindex
  2. 腾讯2013年校园招聘笔试试题
  3. 数据中心智能化运维之路
  4. oracle中序号生成器,Oracle序列生成器
  5. sql server php删除,使用 SQL Server 添加删除修改查询储存过程
  6. Haproxy+Keepalived+Nginx
  7. hdu 1800 字符串水题 可用字符串hash 字典树做 我用了最水的排序水过
  8. html中使用js实现福彩双色球随机选号
  9. a链接下载文件名乱码
  10. mindoc源码编译和部署
  11. 信息系统项目管理-项目变更管理-十六
  12. 路由器与交换机工作过程详解!!!
  13. c#运用——简体字转繁体字
  14. 数据湖:网易严选的数据湖实践
  15. Oracle-opatchauto自动安装补丁失败导致RAC集群异常问题
  16. Python 抓取数据并可视化
  17. Gizmo for Linux 1.1.0.39
  18. virtualbox 虚拟机里支持 USB3.0 , 无线网卡
  19. Java基础之——动态代理
  20. 解决3ds Max在高分辨率屏幕下显示字体偏小的问题

热门文章

  1. project的项目概述报表
  2. 网络变压器厂家不传之秘:10G网络滤波器不能消除的噪音是哪些?
  3. 羊皮卷-gt;羊皮卷之一(世界上最伟大的推销员)
  4. 6-34 图书列表 (20 分)
  5. 掌握函数的逆向思维竟然这么可怕!
  6. pytorch获取全部权重参数、每一层权重参数
  7. Android 朋友圈九宫格展示图片
  8. phpMyAdmin-5.2.0 php-7.4.5 nginx-1.21.6 打开页面空白
  9. 金宝汤企业协同平台分享
  10. 费列罗附属公司完成对金宝汤公司旗下凯尔森集团的收购