了解 NFS 挂载上的 stat、du 和 ls -l 输出

了解 NFS 挂载上的 stat、du 和 ls -l 输出
ls -l f.txt
-rwxrwxr-x 1 abc abc 1161 Sep  1 02:02 f.txt

stat f.txt
  File: `f.txt'
  Size: 1161        Blocks: 34         IO Block: 524288 regular file
Device: 38h/56d Inode: 6448956669  Links: 1
Access: (0775/-rwxrwxr-x)  Uid: ( 1024/   carle)   Gid: (  100/   users)
Access: 2017-09-09 02:02:36.000000000 -0700
Modify: 2017-09-09 02:02:36.000000000 -0700
Change: 2017-09-11 20:42:00.709807459 -0700

du -h f.txt
17K wiki.txt
  1. 为什么f.txt在磁盘上占用17K(17408字节)?
  2. 什么是 IO 块大小?为什么它的长度是 524288 字节并且不等于文件系统块大小(假设文件系统块大小为 17K)?

这里发生了什么?

答案1

两者都不是,这只是在文件系统上 混淆了file sizevs 。size on disk文件系统 这里每个框/块的大小都17k在文件系统上,考虑到黄色部分是您的文件数据(f.txt),其大小约为 1161,但磁盘已占用 17k 大小。du命令给出磁盘上的实际大小。

假设您的文件大小为18000 bytesdu 命令给出输出 34k !

  1. Size 是文件的实际字节数,而 size on disk 是文件在磁盘上占用的实际字节数。

  2. 磁盘上的大小通常大于文件的实际大小。

  3. 对于标记为稀疏(有“漏洞”)或由文件系统自动压缩的文件,磁盘上的大小可能小于实际大小。

相关内容