我将从示例开始:
$ ls -l dir1
total 4
-rw-r--r-- 4 maythux maythux 1650 2008-01-10 16:33 file
lrwxrwxrwx 1 maythux maythux 7 2008-01-15 15:17 symfile -> file
Run Code Online (Sandbox Code Playgroud)
symfile
是文件的符号链接 file
我也知道1650
文件的大小file
,但是7
大小列下的数字是多少?
编辑:运行du
:
$ du -sh symfile
0 symfile
Run Code Online (Sandbox Code Playgroud)
那么你怎么能证明 7 是符号链接的大小呢?!
更新:
尝试这个
$ touch file
$ du -sh file
0 file
$ ls -l file
-rw-rw-r-- 1 maythux maythux 0 Jun 1 19:42 file
Run Code Online (Sandbox Code Playgroud)
请注意,这里的大小也是 0。
现在:
$ ln -s file sym
$ du -sh sym
0 sym
$ ls -l sym
lrwxrwxrwx 1 maythux maythux 4 Jun 1 19:44 sym -> file
Run Code Online (Sandbox Code Playgroud)
所以,我想这不仅仅是一个尺寸
Rin*_*ind 13
符号链接占用了存储名称和目标以及其他元数据的几个字节所需的空间。
所以它是符号链接的大小。
关于大小来自du -sh
:du
只查看分配了多少块,因此可能显示 0.stat
并且ls -l
在这方面显示大小更好。
它是以字节为单位的符号链接的大小。
一些文件系统在用于文件开头的目录条目内有一个小区域,这file
以较大的目录条目为代价显着加快了符号链接和小读取(认为)的处理。
如果整个符号链接内容适合目录条目,则不会分配数据块,du
大小显示为零。如果符号链接不适合,则正常分配空间(因此您最终会分配单个块),这可能会由文件系统使用尾部合并进行优化(但没有 APIdu
可以了解这一点)。
该ext4
文件系统执行此优化的符号链接而已,标准的功能发现ext4_inode_is_fast_symlink。
归档时间: |
|
查看次数: |
14104 次 |
最近记录: |