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


8

uniceではファイル拡張子は必要ありませんが、遭遇するすべてのtar、gzip、またはbzipされたファイルには.tar.tar.gzやのようなファイル拡張子があります.tgz

そのための特別な理由はありますか、それとも単なる慣習ですか?

回答:


17

もともと、UNIXシステムでは、ファイル名の拡張子は慣例の問題でした。それらは人間がファイルを開くための適切なプログラムを選択することを可能にしました。現代の慣習では、ほとんどの場合拡張機能を使用します。一般的な例外は次のとおりです。

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

(これらは一般的なケースであり、厳格なルールではありません。)

ほとんどのバイナリファイル形式には、ファイルのプロパティを説明するヘッダーの種類も含まれており、通常、マジックナンバーによってファイル形式を識別できますfileコマンドこの情報を見て、ショーあなたがその推測。

ファイル拡張子はファイル形式よりも多くの情報を提供する場合もあれば、逆の場合もあります。たとえば、多くのファイル形式はzipアーカイブで構成されています。Javaライブラリ(.jar)、OpenOfficeドキュメント(.odt、…)、Microsoft Officeドキュメント(.docx、…)などです。別の例はソースコードファイルで、拡張子はプログラミング言語を示します。コンピュータがファイルの内容から自動的に推測するのが難しい。逆に、いくつかの拡張機能は非常にあいまいです。たとえば.o、コンパイルされたコードファイル(オブジェクトファイル)に使用されますが、ファイルの内容を調べると、通常、オブジェクトファイルのマシンタイプとオペレーティングシステムが簡単にわかります。

拡張機能の利点は、ファイルを開いてマジックシーケンスを探すよりも、認識した方がはるかに高速であることです。たとえば、シェルでのファイル名の補完は、ほとんどの場合、名前(主に拡張子)に基づいています。これは、大きなディレクトリのすべてのファイルを読み取るのに時間がかかる可能性があるのに対し、ファイル名を読み取るだけの場合は、Tabプレスに十分な速度です。

ファイルの拡張子を変更すると、2つのファイル形式がほぼ同じであるが完全に同一ではない場合に、ファイルの解釈方法を指定できる場合があります。例えば、ウェブサーバは扱うかもしれない.shtml.html、異なったいくつか受けて旧サーバー側の前処理を、後者は、ある務めました。

gzip形式のアーカイブの場合は、gzip名前の両端で再圧縮ファイルではないだろう.gz.tgzといくつかの他の拡張機能。これによりgzip *、ディレクトリ内のすべてのファイルを圧縮して実行でき、すでに圧縮されているファイルは変更されません。


1
デーモンスクリプトを含むディレクトリには、.d拡張子が付けられることもあります。たとえば、init.d、cron.dなど
Lie Ryan

8

拡張子は必要ないかもしれません、の出力でそれらを識別しやすくなりますls


2
丁度。通常、「私の手を握ってください」というフラグはありません。そのため、tar取得したアーカイブの種類を通知する必要があります。
Kevin Cantu

3

ファイル拡張子は、主にシステムを使用する人間のための規則です。ファイル名拡張子を使用して処理を行うツールがあります。たとえば、Nautilusは、ファイル拡張子に基づいて異なるアイコンを表示します。

というファイルをあなたに渡した場合、fileこのファイルを開く方法がわからない可能性があります。私はあなたの名前のファイルを与えた場合は、file.tar.gzまたはfile.tarあなたが迅速かつ容易にそれを把握することができます。


5
Nautilusは、ファイルタイプを判別するために、ファイル拡張子以外のものも使用します。拡張子のないtar.gzファイルは、通常、派手なシンボルを取得します。
Steven D
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.