0
点赞
收藏
分享

微信扫一扫

Linux系统下 硬链接 导致du 命令显示结果不一致

非凡兔 2022-08-25 阅读 136


问题描述

Linux 系统我们一般通过du -sh 命令查看文件大小,遇到这么一个情况,同一个文件,通过两种方式查看大小不一样,如下

[root@VM-80-27-centos ~]# du -sh /data/test1  # 直接du这个目录
659M /data/test1
[root@VM-80-27-centos ~]#
[root@VM-80-27-centos ~]# du -sh /data/* | grep test1 # du 这个文件上层
4.0K /data/test1

排查过程

1、查看这个目录下的文件大小

[root@VM-80-27-centos ~]# du -sh /data/test1/*
0 /data/test1/1
0 /data/test1/2
659M /data/test1/testfile1
[root@VM-80-27-centos ~]#

很明显,有内容,不止 4.0K,    /data/test1/testfile1 这一个文件就有 659M 

2、使用stat命令查看文件,显示 Links: 2,说明存在硬连接

[root@VM-80-27-centos ~]# stat /data/test1/testfile1 
File: ‘/data/test1/testfile1’
Size: 690850711 Blocks: 1349328 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 657894 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-08-25 03:26:13.530107939 +0800
Modify: 2022-08-25 03:26:18.691100790 +0800
Change: 2022-08-25 03:30:45.641836356 +0800
Birth: -
[root@VM-80-27-centos ~]#

3、通过find 查找硬连接 

  • -inum:根据Inode 查找

[root@VM-80-27-centos ~]# find / -inum 657894
/data/test1/testfile1
/data/test/testfile

4、查看这两个文件确实 Inode 一致

[root@VM-80-27-centos ~]# 
[root@VM-80-27-centos ~]# stat /data/test1/testfile1
File: ‘/data/test1/testfile1’
Size: 690850711 Blocks: 1349328 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 657894 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-08-25 03:26:13.530107939 +0800
Modify: 2022-08-25 03:26:18.691100790 +0800
Change: 2022-08-25 03:56:00.063978883 +0800
Birth: -
[root@VM-80-27-centos ~]#
[root@VM-80-27-centos ~]# stat /data/test/testfile
File: ‘/data/test/testfile’
Size: 690850711 Blocks: 1349328 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 657894 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-08-25 03:26:13.530107939 +0800
Modify: 2022-08-25 03:26:18.691100790 +0800
Change: 2022-08-25 03:56:00.063978883 +0800
Birth: -
[root@VM-80-27-centos ~]#

补充

1、软连接和硬链接的区别可参考:​​https://www.runoob.com/note/29134​​

2、find命令也可以通过find -samefile 这个参数来查找 硬链接文件

[root@VM-80-27-centos ~]# find /data/ -samefile /data/test1/testfile1  
/data/test1/testfile1

/data/test/testfile



举报

相关推荐

0 条评论