Назад | Перейти на главную страницу

Почему в Linux пустой файл имеет размер 0, а текстовый файл с любым содержимым имеет размер, равный длине содержимого + 1?

Это может быть ерунда, я не уверен.

Вероятно, завершающий символ новой строки. Например, файл, созданный в текстовом редакторе, содержащий только букву «а», на самом деле может содержать 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

Дополнительный байт предназначен для конца строки в конце файла, довольно часто текстовые редакторы Linux добавляют этот конец строки после последней строки.