Por que o primeiro campo em 'ls - l' não é 'f' ao visualizar um arquivo? [fechadas]

7

Quando faço 'ls -l', posso conseguir algo assim:

-rw-r--r-- 1 root root 209 Mar 30 17:41 fname

O primeiro campo é o - , o que significa que é um arquivo.

Se fosse um diretório e não um arquivo, o primeiro campo seria um d .

Por que os criadores do Unix decidiram usar um diretório d para o diretório, que é claro e intuitivo, e ainda usam um - para um arquivo? Por que não usar f para um arquivo?

Editar
Respostas realmente interessantes. Muitas ideias diferentes, e todas elas fazem sentido, mesmo que algumas pareçam mais inadvertidamente verdadeiras do que implementadas por esse motivo e / ou estão documentadas como sendo essa a razão.

    
por Monica Heddneck 22.09.2018 / 21:36

1 resposta

12

Historicamente, uma das grandes decisões de design no Unix era considerar tudo como um arquivo.¹ Isso ocorre nas primeiras páginas de manual ls e stat ; por exemplo, na V3 (fevereiro de 1973), o stat manpage (que descreve o modo usado por ls ) diz que

The mode is a six-character string whose characters mean the following:

  1. s: file is small (smaller than 4096 bytes)
    l: file is large
  2. d: file is a directory
    x: file is executable
    u: set user ID on execution
    -: none of the above

etc.

Na V4 (outubro de 1973), o modo começa a se assemelhar ao que temos hoje; o ls manpage diz

The mode printed under the -l option contains 10 characters which are interpreted as follows:

the first character is
d if the entry is a directory;
b if the entry is a block-type special file;
c if the entry is a character-type special file;
- if the entry is a plain file.

The next 9 characters are interpreted as three sets of three bits each.

Portanto, parece que os criadores do Unix realmente pensaram que um arquivo simples é “apenas” o padrão, nada de especial, então ele não merece um caractere - tudo é um arquivo, e apenas arquivos que não são simples Descrição adicional. Pode-se pensar em - como sinalizando a ausência de "especialidade".

¹ Estritamente falando, a decisão do projeto era tornar tudo acessível através do sistema de arquivos, não considerar tudo como um arquivo; mas, como resultado, tudo tinha que ser disponibilizado como algum tipo de arquivo, e isso exigia a capacidade de distinguir diferentes tipos de arquivos. Veja seção 3 do Sistema de Compartilhamento de Tempo do UNIX .

    
por 22.09.2018 / 22:01

Tags