No Linux, por que um arquivo vazio tem um tamanho de 0, mas um arquivo de texto com qualquer conteúdo tem um tamanho do tamanho do conteúdo + 1?

6

Isso pode ser uma coisa * nix, não tenho certeza.

    
por Kevin Rood 01.09.2011 / 22:02

2 respostas

16

Um byte extra é para o final da linha no final do arquivo, é bastante comum que os editores de texto do Linux adicionem essa linha após a última linha.

    
por 01.09.2011 / 22:06
18

Provavelmente um caractere de nova linha à direita. Por exemplo, um arquivo criado em um editor de texto contendo apenas um 'a' pode na verdade conter 2 bytes:

$ cat /tmp/test_text | hexdump -C
00000000  61 0a                                             |a.|
00000002

No entanto, usar echo -n (sem nova linha) nos dá um tamanho de 1 byte:

$ 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
    
por 01.09.2011 / 22:11