web-dev-qa-db-ja.com

Linuxで、空のファイルのサイズが0であるのに、コンテンツを含むテキストファイルのサイズがコンテンツの長さ+ 1であるのはなぜですか?

これは* nixのことかもしれませんが、よくわかりません。

6
Kevin Rood

余分なバイトはファイルの最後の行末用です。Linuxテキストエディタでは、この行末を最後の行の後に追加するのが一般的です。

16
Alex

おそらく末尾の改行文字。たとえば、「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
18
Unk