O bin / diretório para armazenar arquivos binários?

2

Eu tenho visto muitos tutoriais dizendo que o diretório bin é usado para armazenar arquivos binários, o que significa que há apenas 0 e 1 nos arquivos desse diretório.

No entanto, em muitos casos, vejo arquivos em bin que não são apenas 0 e 1 .

Por exemplo, o django-admin.py no diretório xx/bin/ :

#!/usr/bin/env python
from django.core import management

if __name__ == "__main__":
    management.execute_from_command_line()
    
por three-blocks 20.06.2017 / 16:33

4 respostas

5

Não, um diretório bin não é para armazenar apenas arquivos binários. É para manter arquivos executáveis , principalmente.

Um script executável é um arquivo de texto, interpretado por um intérprete. O script no seu exemplo é um script Python. Quando você executá-lo, o interpretador python (que é outro arquivo executável em algum lugar no seu $PATH ) será usado para executá-lo.

Além disso, como um aparte, um arquivo de texto é tanto um arquivo composto de zeros e uns como um arquivo binário.

    
por 20.06.2017 / 16:38
5

“Arquivos binários” é a etimologia do diretório bin , mas não o seu significado atual . Originalmente, era para arquivos binários, como em programas compilados - arquivos contendo código de máquina que podiam ser carregados na memória e executados como código. Mas rapidamente ele veio para conter qualquer programa que pudesse ser executado, fosse este programa um código de máquina ou um script que fosse interpretado por algum outro programa. Por outro lado, arquivos contendo código de máquina que não podem ser executados diretamente não são armazenados em /bin , mas em /lib (para biblioteca ).

    
por 23.06.2017 / 04:50
2

Do Padrão de hierarquia do sistema de arquivos :

/bin contains commands that may be used by both the system administrator and by users, but which are required when no other filesystems are mounted (e.g. in single user mode). It may also contain commands which are used indirectly by scripts.

Portanto, em suma, contém executáveis essenciais do programa. Outras pastas contendo programas não essenciais podem ser / usr / bin, / usr / local / bin etc.

    
por 20.06.2017 / 16:54
0

Mesmo os scripts são armazenados como bits e bytes, tente você mesmo:

xxd -b /usr/bin/zcat
    
por 20.06.2017 / 16:46