目录

1、软连接

2、硬链接

3、硬链接和软连接的异同点

4、删除文件与空间的联系

5、du和df的区别


文件系统中的软连接和硬链接。

每个文件创建好之后,都会维护两个计数器:i_count和i_nlink。

  • i_count:记录了有多少个程序在使用这个文件(记录了程序打开文件的数量)。
  • i_nlink:记录这个文件的硬链接数(目录项指向)。

1、软连接

软连接:相当于一个快捷方式。是完全的备份soft_disk.sh,inode号都不一样。创建自己的inode号指向自己的inode号,它里面的data不会放具体的数据,然后找到自己的data。(最后一个data存放之前指向文件的指针,通过指针找到inode号,找到inode号之后,最后找到data)它只认之前文件的路径,如果删除文件,就是删除文件的目录项,文件名没有了,如果创建同名的文件名,这个连接又生效,因为它只认文件的文件路径名。

创建方式为:ln -s 源文件 链接文件

[root@localhost soft-hard]# ln -s aa aa_soft  创建连接文件(创建aa的连接文件aa_soft)
[root@localhost soft-hard]# ls
aa  aa_soft
[root@localhost soft-hard]# ls -ld
drwxr-xr-x 2 root root 46 6月  14 21:33 .
[root@localhost soft-hard]# touch bb
[root@localhost soft-hard]# ls -ld
drwxr-xr-x 2 root root 56 6月  14 22:59 .
[root@localhost soft-hard]# mkdir subsoft
[root@localhost soft-hard]# ls -ld
drwxr-xr-x 3 root root 71 6月  14 22:59 .
[root@localhost soft-hard]# ls -ld .
drwxr-xr-x 3 root root 71 6月  14 22:59 .
[root@localhost soft-hard]# ls -ld subsoft
drwxr-xr-x 2 root root 6 6月  14 22:59 subsoft
[root@localhost soft-hard]# ls -al subsoft/
总用量 0
drwxr-xr-x 2 root root  6 6月  14 22:59 .
drwxr-xr-x 3 root root 71 6月  14 22:59 ..

2、硬链接

不同的目录项指向inode1。hard_disk.sh 新的目录项指向同一个inode,创建新的目录项,硬链接不能跨文件系统。

创建方式为:ln 源文件 链接文件

[root@localhost soft-hard]# ln aa aa_soft
ln: 无法创建硬链接"aa_soft": 文件已存在
[root@localhost soft-hard]# ls -al
总用量 4
drwxr-xr-x   2 root root   31 6月  14 20:47 .
drwxr-xr-x. 20 root root 4096 6月  14 20:42 ..
-rw-r--r--     1     root root    0 6月  14 20:47 aa
lrwxrwxrwx   1 root root    2 6月  14 20:47 aa_soft -> aa

查看i_node号:ls -i 文件名

[root@localhost soft-hard]# ls -i aa
1137852 aa
[root@localhost soft-hard]# ls -i aa_hard  查看i_node号
1137852 aa_hard
[root@localhost soft-hard]# ls -i aa_soft
1137853 aa_soft

3、硬链接和软连接的异同点

1、创建方式不同。软硬链接都是通过ln创建文件,如果接-s就是创建软链接,如果不接就是创建硬链接。

2、现象:删除原文件两个链接文件的区别。

最大的现象是:删除原文件的时候,软连接就失效了,但是硬链接不受影响,还能正常使用。

硬链接删除原文件,链接文件还能正常使用;软连接删除原文件,链接文件就看不到了,硬链接只是新建目录项。

3、原理:硬链接其实就是新建目录项和原文件指向同一个inode。

软链接:新建了一个文件,只是这个文件的data数据指向原文件的路径。

因为硬链接连接其实就是创建一个新的目录项,指向同一个inode,所以删除原文件的时候,就是删除原文件的目录项信息,但是硬链接指向的inode号还在那里的,所以还能访问得到

对于软连接,如果删除软链接,软链接是从头到尾生成一个全新的文件,这个文件里面的内容指向的还是以前的源文件的目录、路径,源文件的被删除之后就获取不到了,源文件的目录项被删除之后,软链接就获取不到数据了。

4、区别:

①硬链接:不能跨文件系统创建(每个文件系统都有自己独立的inode)

不能对目录进行链接。

  • 硬链接新建了一个目录项,指向同一个inode,所以不同的文件系统有不同的inode,属于自己的inode,不能跨文件系统去创建硬链接。

软链接:软链接只关注路径,所以是可以跨文件系统的。

② 硬链接不能对目录进行链接,只能对文件进行链接。

软链接没有这个要求,可以链接文件也可以链接文件夹。

硬链接:

相当于起了个别名。不会创建新的inode号,链接文件和源文件共用一个inode号,只是源文件的引用数加一;

如果删除源文件,链接文件仍然可以使用 ;

链接文件和源文件的文件类型相同;

硬链接不能跨文件系统,软链接可以;

不可以对不存在的文件和目录创建硬链接;

软链接:

相当于Windows桌面上的快捷方式。会创建新的inode号,源文件和链接文件的inode号不相同;

源文件的链接数不变,链接文件的链接数为1(不会被上一层引用);

源文件和链接文件的文件类型不同,软链接文件权限为777,文件属性有标识,访问权限真正取决于源文件权限;

删除源文件,链接文件就访问不了了;

可以对不存在的文件和目录创建软链接;

4、删除文件与空间的联系

i_count 记录程序打开这个文件的数量(fd);i_nlink 记录文件的硬链接数(目录项指向)

只有当i_count和i_nlink都为0,这个inode和data的空间才会被标记未使用,这部分磁盘空间才会被释放,有时候rm删除文件,但是空间不一定会被释放的。

rm删除文件只是删除目录项,i_nlink数减1,还需要关注i_count数,看有没有进程使用当前文件。

df查看磁盘满了,但是du查看单文件大小还没有那么大。删除某些日志文件,没有重新加载服务,日志文件不会被释放。

解决办法:

1、找到进程:lsof|grep del  查看已经删除但是仍占有资源的文件

2、重启服务

清空日志文件,在进程还运行的时候,不要用删除。

可以选择重定向覆盖清空:>access.log

/logrotate.d日志的轮转的时候如果需要往旧文件里面messages写新文件的时候,与进程相关的需要重新加载服务或者重启进程。

5、du和df的区别

du是查看目录的大小,而df是查看磁盘的使用情况。

常见的df和du查看结果不一致情况是文件删除造成的。

du(disk usage):是通过搜索文件来计算每个文件的大小然后累加得到的,du能看到的文件只是一些当前存在的,没有被删除的。当一个文件被删除之后,在文件系统目录中已经不可见了,所以du就不会再统计它了。

df(disk free):通过磁盘来快速获取空间大小的信息,文件被删除之后,i_link变为0,但是如果这个时候进程(i_count)持有这个已经被删除了的文件的句柄,那么这个文件就不会真正在磁盘中被删除, 超级块中的信息就不会被更改。这样df仍然会统计这个被删除的文件。因此找到还持有被删除文件句柄的进程,然后关闭进程或者杀掉进程用以释放空间。它比du强的地方就是能够看到已经删除了的文件,而且计算大小的时候,把这一部分的空间也加上了,更加精确了(程序看到统计的)。当文件熙然也确定删除了改文件之后(重新加载或重启服务),这个时候du和df就一致了。可以用lsof |grep delelted查看哪些文件删了但是仍然在占用资源。

文件系统之软连接、硬链接的区别/文件删除与空间的联系/df和du的区别相关推荐

  1. linux查看硬链接的对应文件,linux查看硬链接对应的所有文件

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

  2. 9.特殊权限 软连接 硬链接

    2019独角兽企业重金招聘Python工程师标准>>> 6月7日任务 2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.2 ...

  3. Linux随笔2 - Linux的目录配置、文件元数据信息、符号链接与硬链接和常用文件和目录管理命令示例

    目录 1. Linux的目录配置与FHS(Filesystem Hierarchy Standard) 1.1 根目录(/)的意义与内容 1.1.1 FHS要求根目录中必须存在的目录 1.1.2 FH ...

  4. linux 硬链接占空间吗,硬链接到底占不占用磁盘空间?

    硬链接到底占不占用磁盘空间? 查了很多资料都说  硬链接不占用磁盘空间, 于是乎,我做了如下实验,竟意外地发现有的硬链接也占用了磁盘空间!!! 文件系统是 ext4,centos虚拟机. 不多说,往下 ...

  5. 浅谈df和du的区别

    最近学习了大数据知识,用到了一些命令,做一些必要的笔记,一来是对自己学习的知识的巩固,二来对有同样问题的人有参考作用 文章目录 一 概念 1. du 2. df 二 举例 1. du使用举例 2. d ...

  6. df 和 du 两者区别

    df 和 du 两者区别 1. df-disk free 可以快速获取 磁盘 被占用了多少空间,目前还剩下多少空间等信息. 2.du-disk usage 显示磁盘空间的使用情况,统计 目录(或文件) ...

  7. 浅谈linux中的硬链接和软链接文件以及ln的使用方法

    在linux系统中有一种文件叫做链接文件,可以为解决文件的共享使用.链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link). 一.基 ...

  8. linux查看硬链接的对应文件,区分Linux硬链接与软链接

    在Linux中,连接文件有两种,一种类似于Windows的快捷方式,可以让你快速地链接到目标文件(或目录),这种称为软链接(soft link),也叫作符号链接(symbolic link):另一种则 ...

  9. 特殊权限-软连接-硬链接

    2019独角兽企业重金招聘Python工程师标准>>> 特殊权限: 可用ls -l filename 第一列: set_uid权限: s权限作用在文件所有者:所有者除外的用户,在处理 ...

最新文章

  1. ORB算法原理解读【不错】
  2. 留意TCP/IP筛选和IP安全策略
  3. clear session on close of browser jsp
  4. 结合MongoDB开发LBS应用
  5. linux系统时区设置
  6. 日历控件源码开放--适用于ASP.NET 1.1
  7. GWR4 软件输入数据制作
  8. windows cmd命令行添加mysql环境变量
  9. 贾俊平统计学思维导图- 第十三章 时间序列分析和预测
  10. linux or msys2设置网络代理
  11. Mac OS 版本历史
  12. Shapely——基础操作汇总
  13. PDF如何修改文件字体大小
  14. 微信小程序和微信小游戏的区别体现在哪?
  15. 家里Wifi网速突然变慢,一招瞬间提速
  16. StarUML使用说明
  17. 分区助手里如何从临近盘(如D盘)抽取一定的空间给已经快满了的盘(如E盘)(博主推荐)(图文详解)...
  18. 使用Python登录QQ邮箱发送QQ邮件
  19. 我想成为一只IT小小鸟
  20. Vue + Element + Table 分页选择勾选 和取消勾选的问题

热门文章

  1. U盘复制文件提示错误0x80071AC3无法复制解决办法
  2. 【HAL库】HAL库STM32cubemx快速使用
  3. 雷观(五):认准的事情,要做就做到极致
  4. 电脑开机总是自动修复
  5. 刚开始创建maven工程时会出现plugins爆红的问题
  6. java 删除指定文件夹 以及文件下下面的所有文件
  7. 蚂蚁金服 Service Mesh 深度实践
  8. (附源码)基于SSM框架的图片分享及评价网站设计与实现 毕业设计201524
  9. 银河麒麟系统,光盘追加刻录失败
  10. Termux 搭建 gogs