ウェブサイト検索

なぜLinuxはファイル拡張子を気にしないのか、しかしあなたはまだ気にすべきなのか


重要なポイント

  • Linuxは通常、ファイル拡張子に依存せず、ファイル内の「マジックナンバー」を使用してファイルのタイプを判断します。
  • Linuxアプリ、特にGNOMEファイルは、ファイルタイプを判断するために拡張子を使用することがあります。
  • ファイル拡張子を使用することで、相互運用性を高め、ファイルタイプをより簡単に認識できるようになります。

おそらく、特にWindowsで育った人は、ファイル名のファイル拡張子を追跡したり変更したりすることに慣れているでしょう。しかし、Linuxはファイル拡張子を異なる方法で使用し、場合によってはそれらを完全に無視します。では、何が起こっているのでしょうか、拡張子は本当に重要なのでしょうか?

Linuxにおけるファイル拡張子の違いは何ですか?

ほとんどのコンピュータシステム、特にWindowsは、何らかの形でファイル拡張子を使用しています。ファイル拡張子とは、ファイル名の末尾にある2〜4文字(時には数字)のグループです。これは、ウェブページの場合は「.html」、JPEG画像の場合は「.jpg」などです。

一部のシステムは拡張子に非常に厳格で、実質的に必要です。Linuxはより柔軟で、多くのケースではファイルの拡張子にはあまり気にしません。あなたの画像ファイルを「octopus.png」や「octopus.image」、あるいは単に「octopus」と呼んでも自由です。

なぜ拡張機能は(通常)重要ではないのか

歴史的に、Linuxはファイルの名前ではなく、その内容によってファイルの種類を判断することを好んでおり、Windowsとは異なります。それぞれのアプローチには独自の利点があるため、どちらが正しい、間違っている、または他より優れているということはありません。

Linuxでファイルタイプを見つける標準的な方法は、「マジックナンバー」と呼ばれる特定のタイプのファイルを示すテキストパターンや生バイトを使用します。例えば、fileコマンドはファイルのタイプを出力します:

Linuxがファイルタイプを扱う方法のため、ファイルの拡張子を変更しても、ファイルコマンドはその実際のタイプを認識します:

一般的に、アプリはファイル拡張子に関係なく、完璧に動作します。ファイルを損なうことなく、ファイル拡張子を完全に削除することもできますし、問題は発生しないはずです。しかし、もちろん、何か問題が起こるまでは。

拡張が実際に重要な時

Linuxはファイル拡張子を気にしない傾向がありますが、アプリは自分たちの好きなように振る舞うことができます。GNOMEのFiles(Nautilus)のようなコアアプリでさえ、ファイルタイプを判別するために拡張子を使用します。たとえば、異なる拡張子の同じファイルの2つのコピーを以下に示します。

ファイルは、JPG拡張子を持つファイルに対してJPEGタイプを報告しますが、それがPNG形式であるにもかかわらずです。これは、ファイル拡張子を使用する方が効率的だからかもしれません。マジックアプローチは、ファイルを開いてその内容の一定量を読むことに依存しています。ファイル名を検査する方が早いですが、正確性は劣ります。

いくつかのファイルタイプは拡張子により依存しています。例えば、XLSXファイルは圧縮ファイルの一種であり、拡張子が重要です。これがないと、xdg-openのようなアプリは期待通りに機能しません。この例では、sample.xlsxという名前のExcelスプレッドシートファイルと、その拡張子がないsample2というファイルのコピーを使用しています。

ファイルコマンドは両方のファイルをMicrosoft Excelタイプとして認識しますが、xdg-openは混乱し、拡張子なしのファイルをアーカイブマネージャーで開きます。ファイルもこれを「Zipアーカイブ」として報告しています。

ファイル拡張子を使用することには他にも良い理由があることを念頭に置くことが重要です。

  • ファイルリストからファイルの種類をすぐに認識できると便利です。
  • 関連するファイルをファイル名でグループ化し、拡張子でそのタイプを反映させることは理にかなっています。例えば、Cプログラムでは、コードそのものを含むmain.cファイルと、プログラムのインターフェースの定義を含むmain.hヘッダーファイルがあるかもしれません。
  • 異なるシステムを操作するのが容易になることが多く、Windowsのように拡張機能に依存している場合があります。

要約すると、ファイル拡張子を使用する必要はないかもしれませんが、Linuxでのその目的を理解することは役立つので、面倒を避けるためにやはり使用した方が良いでしょう。

関連記事: