由于教学上的原因,需要下载Android源码,后来使用repo时,系统提示需要python2,我的系统中是两个都有的,但是默认是python3,无法下载,通过创建了个链接搞定,下面就来说说linux下的链接。

  1.Linux链接概念
  Linux下链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接,通过使用-s选项,产生符号链接,也就是软链接。硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode

Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

  2.通过实验加深理解
[munication@develop LinuxCode]$ touch file1.txt              #创建一个测试文件file1.txt
[munication@develop LinuxCode]$ ln file1.txt file2.txt            #创建f1的一个硬连接文件file2.txt
[munication@develop LinuxCode]$ ln -s file1.txt file3.txt           #创建f1的一个符号连接文件file3.txt
[munication@develop LinuxCode]$ ls -li                  # -i参数显示文件的inode节点信息
总用量 0
11688147 -rw-r--r-- 2 munication munication 0 5月   8 05:26 file1.txt
11688147 -rw-r--r-- 2 munication munication 0 5月   8 05:26 file2.txt
11688148 lrwxrwxrwx 1 munication munication 9 5月   8 05:27 file3.txt -> file1.txt

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

[munication@develop LinuxCode]$ echo "I'm file1.txt" >> file1.txt      #向file1.txt文件中写入内容 I'm file1.txt
[munication@develop LinuxCode]$ cat file1.txt               #查看file1.txt内容
I'm file1.txt
[munication@develop LinuxCode]$ cat file2.txt               #查看file2.txt内容
I'm file1.txt
[munication@develop LinuxCode]$ cat file3.txt              #查看file3.txt内容
I'm file1.txt
[munication@develop LinuxCode]$ rm -f file1.txt              #删除file1.txt文件
[munication@develop LinuxCode]$ cat file2.txt                #查看file2.txt内容,文件依旧健在
I'm file1.txt
[munication@develop LinuxCode]$ cat file3.txt                 #查看file3.txt内容,文件已经烟消云散,不复存在了
cat: file3.txt: 没有那个文件或目录

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

通过上述实践,很容易得出如下结论:
1).删除符号连接file3.txt,对file1.txt,file2.txt不会产生影响;
2).删除硬连接file2.txt,对file1.txt,file3.txt也没有影响;
3).删除原文件file1.txt,对硬连接file2.txt没有影响,会导致符号连接file3.txt失效;
4).同时删除原文件file1.txt和file1.txt的硬连接file2.txt,整个文件才会真正的被删除。

最新文章

  1. python基础03序列
  2. iOS - 二维码扫描和应用跳转
  3. 最简单的Tcp Udp的例子
  4. 【翻译习作】 Windows Workflow Foundation程序开发
  5. Microsoft SQL Server 存储过程举例
  6. 转载--C++ STL
  7. 【实习记】2014-08-18使用curl排错http头的content-length
  8. Django 基础
  9. 应用SecureCRT(发送接收文件)
  10. ISO-8859-1乱码恢复
  11. BZOJ 1042: [HAOI2008]硬币购物 [容斥原理]
  12. 在Linux环境下实现一个非常好的bash脚本框架
  13. 把nginx当完全tcp端口转发器
  14. 一个很好用的在线编辑、展示、分享、交流JavaScript 代码的平台
  15. Apache Shiro 用户信息保存在session方案
  16. python 全栈开发,Day19(组合,组合实例,初识面向对象小结,初识继承)
  17. Django XSS攻击
  18. mysql数据库优化方法大数据量查询轻松解决
  19. 解决 Ubuntu 14.04 图形界面无法正常显示 问题
  20. leetcode83

热门文章

  1. selenium中webdriver跳转新页面后定位置新页面的两种方式
  2. 826. Most Profit Assigning Work
  3. Installing Apps Kattis - installingapps (贪心 + 背包)
  4. 2017 ACM-ICPC EC-Final ShangHai(思维乱搞赛)
  5. tomcat内存泄漏存入dump文件
  6. MFC定时关机程序的实现1
  7. vim中插入递增数
  8. 菜鸟之路——机器学习之线性回归个人理解及Python实现
  9. Python面向对象之私有方法(4)
  10. SQL Server2012使用导入和导出向导时,用sql语句作为数据源,出现数据源类型会变成202或者203