1
ipwx 2021-08-11 09:09:35 +08:00 via iPhone
会。再创建一个文件
|
2
jetyang 2021-08-11 09:19:21 +08:00
解决了记得通知我
|
3
swulling 2021-08-11 09:20:30 +08:00 via iPhone
这个是文件系统实现,目前主流的文件系统都没有这么傻。
结论是不会 |
6
passerbytiny 2021-08-11 09:30:04 +08:00 via Android
@dtgxx 普通文件系统应该没有能能支持 2T 文件的吧,分布式文件系统印象中保存时都是只追加。
|
7
Mithril 2021-08-11 09:35:25 +08:00 1
会的,除非你刚好插了一个 block 大小的内容进去。但这个你也得特殊处理,没法直接用系统的文件操作 API 。
比如你可以先把这些数据写成一个小文件,然后 cat 到原始文件前面。 也可以直接 fallocate 或者 dd |
9
myd 2021-08-11 09:52:08 +08:00
刚刚试了一下,在文件开头插入一样确实很慢,但在文件结尾追加很快:
``` [root@VM-0-8-centos file_test]# ls -lh total 4.8G -rw-r--r-- 1 root root 4.8G Aug 11 09:39 big.txt [root@VM-0-8-centos file_test]# head -n 2 big.txt Hello World !!!!!!!!!!!!!!!!!!!!!!!!!!!!! Hello World !!!!!!!!!!!!!!!!!!!!!!!!!!!!! [root@VM-0-8-centos file_test]# time sed -i '1 i\add first line' big.txt real 2m12.840s user 0m32.787s sys 1m39.221s [root@VM-0-8-centos file_test]# head -n 2 big.txt add first line Hello World !!!!!!!!!!!!!!!!!!!!!!!!!!!!! ``` 建议:实际存储时把文件切割,比如 20M 一个。读取的时候再拼接。 |
10
dynastysea 2021-08-11 10:26:59 +08:00
哪个符合 posix 规范的文件系统还支持中间插入的?标准文件系统语义压根就没有插入这个概念呀
|