![在Linux中,为什么空文件的大小为0,而包含任何内容的文本文件的大小为内容的长度+1?](https://linux22.com/image/560281/%E5%9C%A8Linux%E4%B8%AD%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A9%BA%E6%96%87%E4%BB%B6%E7%9A%84%E5%A4%A7%E5%B0%8F%E4%B8%BA0%EF%BC%8C%E8%80%8C%E5%8C%85%E5%90%AB%E4%BB%BB%E4%BD%95%E5%86%85%E5%AE%B9%E7%9A%84%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E7%9A%84%E5%A4%A7%E5%B0%8F%E4%B8%BA%E5%86%85%E5%AE%B9%E7%9A%84%E9%95%BF%E5%BA%A6%2B1%EF%BC%9F.png)
这可能是 *nix 的事情,我不确定。
答案1
额外的字节用于文件末尾的行尾,Linux 文本编辑器通常在最后一行之后添加这个行尾。
答案2
可能是尾随换行符。例如,在文本编辑器中创建的文件仅包含“a”,但实际上可能包含 2 个字节:
$ cat /tmp/test_text | hexdump -C
00000000 61 0a |a.|
00000002
但是,使用echo -n
(无换行符)会给我们 1 个字节的大小:
$ echo -n 'a' > /tmp/test_text
$ ls -l /tmp/test_text
-rw-r--r-- 1 redacted redacted 1 1 Sep 21:09 /tmp/test_text
$ cat /tmp/test_text | hexdump -C
00000000 61 |a|
00000001