为什么这有效:
truncate -s 2043G foo
...虽然这失败了:
truncate -s 2044G foo
为什么是 2043 GB?
答案1
这是您使用的文件系统的限制。这里 ZFS 创建了一个高达 7 艾字节的稀疏文件:
$ truncate -s 7E foo
$ ls -l foo
-rw-r--r-- 1 jlliagre 8070450532247928832 Nov 9 16:49 foo
答案2
您可能使用的文件系统的最大文件大小为 2TB(例如,块大小为 4KB 或 8KB 的 ext3)。truncate
不会让您指定的目标文件大小大于文件系统支持的最大值; 2044GB 非常接近 2TB。我不知道为什么不是 2048GB 导致了这个问题;这可能是 ext3 存储文件方法的内部内容