web-dev-qa-db-ja.com

bin /ディレクトリはバイナリファイルを保存するためのものですか?

binディレクトリはバイナリファイルの保存に使用される、つまりそのディレクトリ内のファイルには01しかないというチュートリアルをたくさん見ました。

ただし、多くの場合、binには01だけではないファイルが表示されます。

たとえば、Django-admin.pyディレクトリの下のxx/bin/

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

if __name__ == "__main__":
    management.execute_from_command_line()
3
three-blocks

いいえ、binディレクトリはバイナリファイルのみを保存するためのものではありません。これは、主に実行可能ファイルを保持するためのものです。

歴史的に、さまざまなスクリプト言語で記述されたスクリプトが一般的になる前は、binディレクトリwouldには、ソースコードではなく、主にバイナリ(コンパイルまたはアセンブル)非テキストファイルが含まれていました。 binのファイルについての今日の主なことは、それらが実行可能であることです。

実行可能ファイルscriptは、インタープリターによって解釈されるテキストファイルです。この例のスクリプトはPythonスクリプトです。実行すると、pythonインタープリター($PATHのどこかにある別の実行可能ファイル)が使用されます。それを実行します。

また、余談ですが、テキストファイルは、バイナリファイルと同様に、ゼロと1で構成されるファイルです。

8
Kusalananda

「バイナリファイル」はbinディレクトリの語源ですが、現在の意味ではありません。元々は、コンパイルされたプログラムのように、バイナリファイル用でした。これは、メモリにロードしてコードとして実行できるマシンコードを含むファイルです。しかし、このプログラムがマシンコードであろうと、他のプログラムによって解釈されるスクリプトであろうと、すぐに実行可能なプログラムが含まれるようになりました。逆に、直接実行できないマシンコードを含むファイルは/binではなく/libに保存されます( library の場合)。

Filesystem Hierarchy Standard から:

/ binには、システム管理者とユーザーの両方が使用できるコマンドが含まれていますが、他のファイルシステムがマウントされていない場合(シングルユーザーモードなど)に必要です。スクリプトによって間接的に使用されるコマンドが含まれる場合もあります。

つまり、重要なプログラム実行可能ファイルが含まれています。必須ではないプログラムを含む他のフォルダーには、/ usr/bin、/ usr/local/binなどがあります。

2
Aanok

スクリプトもビットとバイトとして保存されます。自分で試してみてください。

xxd -b /usr/bin/zcat
0
Alexander