硬链接或软链接占用文件系统中的任何空间?

dig*_*123 8 unix linux

我经历了很多文档.在文件系统中占用任何空间的硬链接或软链接有很多不一致.任何人都可以为我清除这些内容吗?

对于硬链接,我发现了这个:

我在我的主目录中有一个文件c1,它与同一目录中的d1硬连接.b1和b1的大小为11字节.现在我正在执行"ls -lrt"列出的所有文件的总字节数(不包括d个隐藏文件) (当然)是64个字节.现在,当我删除硬链接d1并再次做一个ls -lrt它给了我60个字节.这并不意味着硬链接占用硬盘空间,但很多docs.negate这个事实,为什么?

我可以检查相同的方式为文件创建一个软链接,然后删除它,但由于我的软链接只有2bytes大小,我不认为删除它会对ls输出中列出的舍入总大小有任何重大影响-lrt.

那是什么呢?

glg*_*lgl 10

当然他们占据(一点点)空间:

  • 硬链接文件有多个目录条目.每个条目占用目录本身的空间,但从那时起,它们共享相同的结构:共享inode和数据区域.但我不确定这是如何计算的; 也许目录条目总是占用一定大小的倍数左右.

  • 符号链接也占用了目录条目的空间,另外还有一个inode,它保存有关链接属性以及链接目标本身的信息.

使用这些小尺寸(文件中的11个字节的数据),开销比实际数据更重要.但是,对于较大的文件,这几个字节的小开销可以忽略不计.


小智 6

是.它们都占用空间,因为它们都有目录条目.

硬链接条目(实际上,[通常]共享inode的"正常条目")占用空间,符号链接条目必须以某种方式存储链接路径(文本本身).由于确切的文件系统实现确定的分配/布局规则(例如块/树大小以及如何存储符号链接),所需的实际空间略有不同.

然而,空间量是最小的,并且[几乎总是]被认为与文件本身中的数据无关.

  • 扩展你的最后一句:...除非它是一个包含许多小文件的系统,并且你的可用inode用完了.在某些文件系统上,这是一个现实的场景,我遇到过它,尽管没有与符号链接或硬链接相结合. (2认同)

use*_*621 6

ls 是错的!

它多次计算硬链接文件.ls -l只会添加每个条目的块编号,无论它有多少个硬链接.

(ls -1si用于显示每个文件的inode编号以及块使用情况)

试试吧du -Ssb ..这将为您提供正确的磁盘使用量,以字节为单位.除非你使用-l开关,这将重现ls的行为.