Linux文件系统中的链接

  • inode

     在讨论Linux系统的链接之前,不得不先说下inode。Linux文件系统中的每一个对象都有唯一的inode索引,每一个inode号和文件系统的一个对象一一对应,要查看文件或目录的inode号可在ls命令中使用-i选项,每个目录下的.(当前目录)和..(上级目录)都是硬链接。如下面例子:

root@vrlab726-desktop:~/Desktop# pwd
/root/Desktop
root@vrlab726-desktop:~/Desktop# ls -ial
total 8672
6447440 drwxr-xr-x 9 root root 4096 2011-12-14 19:27 .

     目录/root/Desktop的inode号为6447440,下面再看下/root/Desktop/test/..的inode号:

root@vrlab726-desktop:~/Desktop# cd test
root@vrlab726-desktop:~/Desktop/test# pwd
/root/Desktop/test
root@vrlab726-desktop:~/Desktop/test# ls -ial
total 8
7668672 drwxr-xr-x 2 root root 4096 2011-12-14 19:27 .
6447440 drwxr-xr-x 9 root root 4096 2011-12-14 19:27 ..

      从中可以发现二者的inode号完全一样,即两者链接到物理磁盘上的同一个条目。

  • 硬链接

      一个inode号可以和任意多个硬链接对应,当所有硬链接都删除后,此inode号也将由系统自动删除,ls -ial命令的第三列即为和当前inode号关联的硬链接数目。创建硬链接的命令为:

root@vrlab726-desktop:~/Desktop/test# touch file
root@vrlab726-desktop:~/Desktop/test# echo "helloWorld" > file
root@vrlab726-desktop:~/Desktop/test# more file
helloWorld
root@vrlab726-desktop:~/Desktop/test# ln file fileHardLink
root@vrlab726-desktop:~/Desktop/test# ls -ial
total 16
7668672 drwxr-xr-x 2 root root 4096 2011-12-14 20:19 .
6447440 drwxr-xr-x 9 root root 4096 2011-12-14 19:27 ..
7668707 -rw-r--r-- 2 root root 11 2011-12-14 20:19 file
7668707 -rw-r--r-- 2 root root 11 2011-12-14 20:19 fileHardLink

      从中可以看出硬链接都指向了同一个inode条目,因此所占用的空间相同。然而,Linux系统中的硬链接有两个限制:1.硬链接只能链接到文件,而不能链接到文件夹。尽管.和..是系统创建的链接到目录的硬链接,但不允许用户(即使是root账户)创建链接到目录的硬链接。2.硬链接不能跨文件系统。

  • 软链接(符号链接)
实际上,软链接比硬链接更为常用,符号链接是一种特殊的文件类型,它只是通过文件名链接到另一个文件,而不是直接链接到inode。如果链接的目标文件被删除了,那么会导致链接到该目标文件的所有软链接断开,不再可用。创建软连接的命令如下:
root@vrlab726-desktop:~/Desktop/test# ln -s file fileSoftLink
root@vrlab726-desktop:~/Desktop/test# ls -ial
total 16
7668672 drwxr-xr-x 2 root root 4096 2011-12-14 20:25 .
6447440 drwxr-xr-x 9 root root 4096 2011-12-14 19:27 ..
7668707 -rw-r--r-- 2 root root 11 2011-12-14 20:19 file
7668707 -rw-r--r-- 2 root root 11 2011-12-14 20:19 fileHardLink
7668708 lrwxrwxrwx 1 root root 4 2011-12-14 20:25 fileSoftLink -> file
可以从两方面辨别出符号链接,ls -ial的第二列中第一个字母为l;在最后一列中的目标文件前有->符号。
总结:
硬链接基于inode实现,而软链接基于名称(或路径)实现;硬链接只允许用户创建链接到文件的硬链接,而软链接既可链接到文件又可链接到目录;硬链接不允许跨文件系统(因不同文件系统中的inode号可能相同),而软链接由于通过路径实现,所以可以跨文件系统。

转载于:https://www.cnblogs.com/sujz/archive/2011/12/14/2288050.html

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

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

相关文章

前端学习(361):svn操作后续

work下面新建文件夹 commit上传 上传 组员update 出现文件夹 新建文件夹 右键上传 点击小乌龟show-log 记录问题 版本操作 再次输入 bbb 先更新 更新之后再次上传 添加了bbb 单击右键 回滚

mysql 组复制 不一致_使用MySQL组复制的限制和局限性

本节列出和解释了组复制相关的要求和限制。1.组复制的要求要使用组复制,每个MySQL节点必须满足以下条件:1.1 基本要求InnoDB存储引擎:数据必须存储在事务型的InnoDB存储引擎中。事务以乐观形式执行,然后在提交前会检测冲突问题。如…

摘记

◇马云说:今天很残酷,明天更残酷,后天很美好,但是大多数人死在明天晚上,看不到后天的太阳!!! ◇晚上想想千条路,早上醒来走原路!!! ◇人要成功一定…

mysql 慢sql分析_如何分析Mysql慢SQL

内容摘要:开启慢查询日志捕获慢SQL使用explain分析慢SQL使用show profile查询SQL执行细节常见的SQL语句优化一、开启慢查询日志捕获慢SQL① 查询mysql是否开启慢日志捕获:SHOW VARIABLES LIKE %slow_query_log%;如果还没开启的话,开启&#x…

x264编码参数大测试:03 subme与crf(c)

一、测试内容 测试方法—— x264编码参数大测试:索引贴 http://www.cnblogs.com/zyl910/archive/2011/12/14/x264_encode_param.html 测试参数—— subme:9、10、11。设定子像素(subpixel)运动估计(motion estimation&…

mysql host %s_python mysql:虽然%s和列匹配,但并非SQL语句中使用的所有参数

PythonMySQL.connector一直给我错误不是SQL语句中使用的所有参数。这是我的代码:import mysql.connectorcon mysql.connector.Connect(userroot, passwordpassword, databaseDB, hostlocalhost)cur con.cursor()#data inserteradd_data "INSERT INTO DB.ver…

如何处理Global symbol * requires explicit package name编译错误,以及use strict用法

编写下面的简单示例来说明如何处理如下类型的错误提示: Global symbol "$c" requires explicit package name at *.pl line 8. Execution of *.pl aborted due to compilation errors. #############Code Starts############### #!/usr/bin/perl -w use s…

mysql error 1201_ERROR 1201 (HY000): Could not initialize master info structure; .....

配置mysql主从复制,start slave是报错:ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log原因:之前做过主从复制解决办法:mysql> stop slave;Query …

如何将函数的实际参数转换成数组

转自:http://www.planabc.net/2010/01/06/arguments_to_array/ 实际参数在函数中我们可以使用 arguments 对象获得 (注:形参可通过 arguments.callee 获得),虽然 arguments 对象与数组形似,但仍不是真正意义…

mysql 执行查询_MySQL查询的执行过程

我们总是希望MySQL能够获得更高的查询性能,最好的办法是弄清楚MySQL是如何优化和执行查询的。一旦理解了这一点,就会发现:很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。当向MySQL发送一个请求的…

膨胀

转载于:https://www.cnblogs.com/carekee/articles/2296335.html

超酷的爬虫可视化界面

大家好,本文主要介绍使用tkinter获取本地文件夹、设置文本、创建按钮下拉框和对界面进行布局。 1.导入tkinter库 导入tkinter的库,可以使用ttkbootstrap美化生成的界面 ttkbootstrap官网地址:https://ttkbootstrap.readthedocs.io/en/late…

mysql5.6定时备份_Mysql自动备份

新建一个bat文件,比如db_back.bat,写入一下内容echo offset "Ymd%date:~,4%%date:~5,2%%date:~8,2%""C:/Program Files/MySQL/MySQL Server 5.6/bin/mysqldump.exe" --opt -u fate --password145829 logging > D:\db_backup\logging_%Ymd%.s…

项目管理沙龙第十次聚会纪要-AOM项目的敏捷实践

项目管理沙龙第十次聚会纪要会议一开始,就有人跟我们分享了一个名词,“分析瘫痪”,意思是不断地追求完美,结果始终在设计状态,无法到下一步去。详细可参考这个 http://hi.baidu.com/parad1se/blog/item/8724472a71b87e…

python安装依赖失败_python执行安装第三方依赖numpy失败:error: Unable to find vcvarsall.bat...

一台计算机上同时安装了python2.7和python3.7。现在为python2.7安装numpy包。失败:error: Unable to find vcvarsall.bat下载安装 Microsoft Visual C Compiler for Python 2.7user installations are disabled via policy on the machine.安装之后:C:\U…

什么是Ext(ExtJs)【转载】

Ext发展史   1、第一只“出海”的YUI-Ext只是作者Jack打算对基于BSD协议的Yahoo!UI库进行自定义的扩展,但后来一度风头盖过其父辈YUI,足以说明 大家对它的热情,很多人把它投入项目人并不十分了解它。分析人士打了一比喻:就好比尚…

zabbix mysql主从_zabbix监控mysql主从状态

1. zabbix客户端编辑脚本 /tmp/shell/mysql_slave_status.sh#! /bin/bash/usr/bin/mysql -p123456 -e ‘show slave status \G;‘|grep -E "Slave_IO_Running|Slave_SQL_Running"|awk ‘{print $2}‘|grep -c "Yes"2. 授执行权限chmod x mysql_slave_statu…

Delphi7函数大全

首部 function Languages: TLanguages; $[SysUtils.pas功能 返回系统语言对象说明 通过此函数可以得到系统的语言环境参考 type SysUtils.TLanguages例子 ///Begin Languagesprocedure TForm1.Button1Click(Sender: TObject);var I: Integer;begin Memo1.Clear; for I …

ffmpeg命令 抓屏_使用FFmpeg从视频中截图的命令 | 学步园

截取一张352x240尺寸大小的,格式为jpg的图片:ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg把视频的前30帧转换成一个Animated Gif :ffmpeg -i test.asf -vframes 30 -y -f gif a.gif目前还没有找到截取…

[恢]hdu 1019

2011-12-16 04:10:41 地址&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1019 题意&#xff1a;求n个数字的最小公倍数。 mark&#xff1a;lcm(a,b,c) lcm(a,lcm(b,c))。wa了一次&#xff0c;没注意lcm先除再乘&#xff0c;溢出了。 代码&#xff1a; # include <…