在Linux中,为什么空文件的大小为0,而包含任何内容的文本文件的大小为内容的长度+1?

在Linux中,为什么空文件的大小为0,而包含任何内容的文本文件的大小为内容的长度+1?

这可能是 *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

相关内容