linux链接 .o,Linux 链接概念 - osc_8ieji7o1的个人空间 - OSCHINA - 中文开源技术交流社区...

1.Linux 链接概念

Linux 链接分两种, 一种被称作硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln 命令产生硬链接。

硬连接

硬链接指通过索引节点来进行连接。再Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给他分配一个编号,称为索引节点号。再Linux中,东哥文件名指向同一索引节点是存在的。比如:A 是 B 的 硬链接(A和B都是文件名)则A的目录项中的inode节点号与B 的目录项中的inode节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。

硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软连接

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

2.通过实验加深理解

[oracle@Linux]$ touch f1 #创建一个测试文件f1

[oracle@Linux]$ ln f1 f2 #创建f1的一个硬连接文件f2

[oracle@Linux]$ ln -s f1 f3 #创建f1的一个符号连接文件f3

[oracle@Linux]$ ls -li #-i参数显示文件的inode节点信息

total 09797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11f19797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11f29797649 lrwxrwxrwx 1 oracle oinstall 2 Apr 21 08:11 f3 -> f1

从上面的结果中可以看出,硬连接文件 f2 与原文件 f1 的 inode 节点相同,均为 9797648,然而符号连接文件的 inode 节点不同。

[oracle@Linux]$ echo "I am f1 file" >>f1

[oracle@Linux]$ cat f1

I am f1 file

[oracle@Linux]$ cat f2

I am f1 file

[oracle@Linux]$ cat f3

I am f1 file

[oracle@Linux]$ rm-f f1

[oracle@Linux]$ cat f2

I am f1 file

[oracle@Linux]$ cat f3

cat: f3: No such fileor directory

通过上面的测试可以看出:当删除原始文件 f1 后,硬连接 f2 不受影响,但是符号连接 f1 文件无效

3.总结

依此您可以做一些相关的测试,可以得到以下全部结论:

1).删除符号连接f3,对f1,f2无影响;

2).删除硬连接f2,对f1,f3也无影响;

3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;

4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432814.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php模拟post提交数据,用处很多,可用来网站的采集,登陆等等

1. [代码][PHP]代码 <?php//以程序登陆一个论坛登录为例 function bbslogin($user_login, $password, $host, $port "80") {//需要提交的post数据$argv array(cookie > array(user_login > $user_login, password > $password, _wp_http_referer…

关闭SQLite3中的journal暂存档

相信很多使用SQLite3当做数据库的人都会一个现象&#xff0c;那就是当SQLite3有做写入的动作时&#xff0c;SQLite3会自动产生一个名为"数据库名称-journal"的暂存档。这是做什么用的呢? 答案是用来Rollback &#xff0c;换句话说&#xff0c;就是当数据写入数据库有…

linux中gid和groups区别,linux用户与组管理

linux安全系统的核心是用户账户&#xff0c;每个使用者使用一个账户名及与该账户关联的密码登入linux系统。使用者对系统资源的访问权限取决于其登录时所用的账户。每个账户在创建时会被分配一个惟一的标识UID&#xff0c;用户权限便是根据UID来跟踪的。每个账户可以选择加入某…

Win8 IIS 安装和部署网站问题

安装IIS 比较win7的安装来说&#xff0c;多选了几个钩钩&#xff0c;不然会报错&#xff0c;偶就遇到这样的错误。 控制面板-》程序和功能-》启动和关闭windows功能&#xff0c;钩钩图例&#xff1a; 安装好iis后 在控制面板-》管理工具 目前只用过iis 信息管理器。 6.0 大概…

sqlite3 journal

sqlite3默认会开启journal&#xff0c;为了进行rollback。但是在突然断电的情况下&#xff0c;journal文件很容易就损坏了。 目前还没有发现数据库文件本身被损坏的情况。 一旦journal文件损坏&#xff0c;就没法打开数据库文件了。但是可以把journal机制关闭。 一旦journa…

linux 计划任务 实例,计划任务 cron 的配置和实例

1、计划任务概说&#xff1b;计划任务&#xff0c;是任务在约定的时间执行已经计划好的工作&#xff0c;这是表面的意思。在Linux中&#xff0c;我们经常用到 crond服务器来完成这项工作。cron服务器可以根据配置文件约定的时间来执行特定的作务。比如我们可以在配置文件中约定…

产品经理们都是怎样成为产品经理的?

一百多个回答中发现很多人的答案讲得是做产品经理之前大家是做什么的或者产品经理是做什么的&#xff0c;这样又造成恶性循环让更多的人这样回答&#xff0c;不过问题本身的描述就有误导性&#xff0c;不怪回答者。我想问问题的人其实是想知道或者说想让别人知道&#xff0c;在…

QString与中文问题

QString 与中文问题2010-07-11 17:04(更新&#xff1a;本文的姊妹篇 Qt中translate、tr关系 与中文问题 )首先呢&#xff0c;声明一下&#xff0c;QString 是不存在中文支持问题的&#xff0c;很多人遇到问题&#xff0c;并不是本身 QString 的问题&#xff0c;而是没有将自己希…

在SharePoint 2010中创建网站的权限级别

转&#xff1a;http://www.360sps.com/Item/CreatePermissionLevels.aspx 权限级别是SharePoint 2010新增加的功能&#xff0c;使我们对权限的设置又提高了一个层次。SharePoint 2010的权限级别指的是可分配给用户或用户组的单个权限组。SharePoint 2010自带的权限级别有&#…

Qt 编码问题QTextCodec

一般在Window开发环境里&#xff0c;是GBK编码&#xff0c;在Linux开发环境里&#xff0c;是utf-8编码&#xff0c;关于编码的定义&#xff0c; 我就不这里多说了&#xff0c;网上有一大堆资料可以查看。 qt对默认的是unicode编码&#xff0c;在Window开发环境里&#xff0c;比…

linux suse11 nfs,suse11 nfsserver服务安装

1概述目的&#xff1a;因为suse11的nfs服务安装和suse10安装有许多不同之处&#xff0c;为了方便以后使用suse11的人使用nfs服务&#xff0c;特写此文档2安装说明A suse11默认不会nfsserver服务&#xff0c;需要安装nfs-kernel-server此包。suse10默认安装nfssever服务&#…

Merge Two Sorted Lists

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. if... else if不要偷懒直接写 if...if... /*** Definition for singly-linked list.* struct ListNode {* int val;* …

V210 系统时间设置

date -s "2015-08-30 20:46:30" hwclock -w

Linux中重定向及管道,Linux中重定向及管道

1重定向1.1 重定向符号> 输出重定向到一个文件或设备 覆盖原来的文件>! 输出重定向到一个文件或设备 强制覆盖原来的文件>> 输出重定向到一个文件或设备 追加原来的文件1.2标准错误重定向符号2> 将一个…

仿新浪微盾客户端项目简介一

最经公司的项目需要实现类似于新浪微盾功能的功能&#xff0c;因此我把这个实战的demo的经历分享给大家。 新浪微盾是啥子玩意&#xff1f; 微盾是由新浪网推出的一款产生一次性动态密码的产品&#xff0c;可以用于新浪旗下各服务&#xff0c;包括新浪微博&#xff0c;新付通&a…

linux设置时间为24小时制,设置时区

1. 查看系统时间 [rootlocalhost.localdomain ~]#date Thu Feb 4 14:24:18 CST 2010 时区是CST&#xff0c;为了彻底弄明白GMT,UTC,CST&#xff0c;我查阅了下网上的相关教程&#xff0c;进行整理&#xff1a; 一般来说&#xff0c;UTC(Coordinated Universal Time世界协调时间…

linux读取pdf文件字体,Linux有问必答:如何在PDF中嵌入LaTex中的所有字体

提问: 我通过编译LaTex源文件生成了一份PDF文档。然而&#xff0c;我注意到&#xff0c;并不是所有字体都嵌入到了PDF文档中。我怎样才能确保所有的字体嵌入在由LaTex生成的PDF文档中&#xff1f;当你创建一个PDF文件时&#xff0c;在PDF文件中嵌入字体是一个好主意。如果你不嵌…

详解公钥、私钥、数字证书的概念

加密和认证   首先我们需要区分加密和认证这两个基本概念。    加密是将数据资料加密&#xff0c;使得非法用户即使取得加密过的资料&#xff0c;也无法获取正确的资料内容&#xff0c;所以数据加密可以保护数据&#xff0c;防止监听攻击。其重点在于数据的安全性。身份认证…

CSS3 2D转换

CSS3 转换 通过CSS3转换&#xff0c;我们能够对元素进行移动、缩放、转动、拉长或拉伸。 它如何工作&#xff1f; 转换是是元素改变形状、尺寸和位置的一种效果。 你可以使用2D或3D转换你的元素。 浏览器支持 属性浏览器支持transform IE10、FireFox以及Opera支持transform…

linux blender骨骼绑定,Linux下安装Blender

Blender在Windows下&#xff0c;可以在官方直接下载免安装的版本&#xff0c;下载解压缩就能用。在Linux下稍微麻烦一点点。如下3步安装的blender不一定是最新版本&#xff0c;且安装完成后发现设置中文会变为方块。这是精简版&#xff0c;中文被精简掉了。若仅使用英文环境&am…