Quanto tempo demora o comando 'arquivo' do Unix?

16

Quando você passa um arquivo de texto para o filecomando Unix , pode dizer algo como:

input.txt: UTF-8 Unicode English text, with very long lines

Alguém pode me dizer o número mínimo de caracteres que uma linha deve conter para ser considerado muito longo ? As páginas de manual não dizem nada sobre isso e eu não quero pesquisar o código fonte. Se alguém puder me dizer como colocar essa pergunta em uma consulta do Google que não retorne um bilhão de resultados, quase todos irrelevantes, eu ficaria feliz também.


fonte
3
Vote na mudança para o superusuário devido à relutância em procurar o código fonte.
Greg Hewgill
Vocês têm razão - vou procurar o código fonte da próxima vez. Obrigado de qualquer forma!

Respostas:

23

De ascmagic.cno pacote de origem do arquivo no Ubuntu:

#include "names.h"

#define MAXLINELEN 300  /* longest sane line length */
#define ISSPC(x) ((x) == ' ' || (x) == '\t' || (x) == '\r' || (x) == '\n' \
          || (x) == 0x85 || (x) == '\f')

Parece que uma linha precisa ter mais de 300 caracteres para ser considerada "muito longa".

BastiBen
fonte
7

Mais de 300 caracteres, de acordo com as linhas 52 e 214-215 em ascmagic.c no código fonte.

O código fonte pode ser encontrado aqui (link obtido na página de manual do Debian file): ftp://ftp.astron.com/pub/file/

Emil Vikström
fonte
7

Força bruta (além disso, este é um programa, certo? Portanto, relacionado à programação?):

$ for i in {1..301}; do printf "%${i}s" "." | file - | grep very && echo $i; done
/dev/stdin: very short file (no magic)
1
/dev/stdin: ASCII text, with very long lines, with no line terminators
301
Pausado até novo aviso.
fonte
2

Uma linha é considerada longa se tiver mais de 300 caracteres.

Andrew McGregor
fonte