tarファイルとgzipファイルに通常ファイル拡張子があるのはなぜですか?

tarファイルとgzipファイルに通常ファイル拡張子があるのはなぜですか?

uniceではファイル拡張子は必要ありませんが、私が見たすべてのtar、gzip、またはbzipファイルは.tar、、.tar.gzまたは.tgz

特別な理由がありますか?それとも単なる習慣ですか?

ベストアンサー1

もともとUNIXシステムでは、ファイル名拡張子は慣例でした。これにより、人々はファイルを開くときに正しいプログラムを選択することができます。現代の習慣は、ほとんどの状況で拡張を使用することです。

  • 通常のファイルにのみ拡張子があり、ディレクトリやデバイス名はありません。ディレクトリやデバイスという単純な事実だけでもファイルタイプを表すのに十分です。
  • 直接呼び出される実行可能ファイルには拡張子がありません。ユーザーには実行可能な情報で十分であり、カーネルはファイル名を気にしません。
  • すべて大文字の単語で始まるファイルは通常テキストファイルです。たとえば、時にはサブカテゴリを表す追加のセクションがありますREADMETODOINSTALL.linuxINSTALL.solaris
  • 名前がドットで始まるファイルは特定のアプリケーション用の設定ファイルまたはステータスファイルであり、通常拡張子はありません(たとえば.bashrc、、、.profile.emacs
  • いくつかの伝統的なケースがありますMakefile

(これは厳密で迅速なルールではなく、一般的なシナリオです。)

ほとんどのバイナリファイル形式には、ファイルのプロパティを記述するヘッダーの種類も含まれており、通常はファイル形式を次のように識別できます。マジックナンバー。これfileコマンドは、この情報を見て推測した内容を表示します。

ファイル拡張子がファイル形式より多くの情報を提供する場合もあり、その逆もあります。たとえば、多くのファイル形式には次のものがあります。圧縮アーカイブ:Javaライブラリ(.jar)、OpenOfficeドキュメント(.odt、…)、Microsoft Officeドキュメント(.docx、…)などの他の例はソースコードファイルです。拡張子はプログラミング言語を表し、コンピュータがファイルの内容から自動的に推測するのは困難です。対照的に、コンパイルされ.oたコードファイルなどの一部の拡張は非常にあいまいです(宛先ファイル)、しかし、ファイルの内容を調べると、通常、ターゲットファイルが意図されているシステムの種類とオペレーティングシステムを簡単に知ることができます。

この拡張の1つの利点は、ファイルを開いてマジックシーケンスを見つけるよりも、それを識別する方がはるかに高速です。たとえば、シェルでは、ファイル名の補完はほとんど常に名前ベース(主に拡張子)です。大きなディレクトリにあるすべてのファイルを読み取るには時間がかかりますが、ファイル名だけを読むだけで押すことができるほど高速ですTab

場合によっては、2つのファイル形式がほとんど同じでない場合は、ファイル拡張子を変更してファイルの解釈方法を説明できます。たとえば、Webサーバーは電子を.shtml異なる方法で処理でき.html、電子は次のプロセスを経ます。サーバー側前処理、後者は現状のまま提供されます。

gzipアーカイブの場合、gzip名前で終わり、他の拡張子を持つ.gzファイルは再圧縮されません.tgz。これにより、gzip *圧縮されたディレクトリ内のすべてのファイルを実行でき、すでに圧縮されているファイルは変更されません。

おすすめ記事