質問: ファイル拡張子には目的がありますか(オペレーティングシステム用)? linuxは、ファイルヘッダーのコードを介してファイルのタイプを判別します。どのソフトウェアがファイルを開くために使用されるかを知るために、ファイル拡張子に依存しません。それは私の教育から覚えていることです。私が間違っている場合に備えて修正してください!最近、ubuntuシステムで少し作業しています:.sh、.txt、.o、.cなどの拡張子を持つシステム上のファイルがたくさんあります今、私は不思議に思っています:これらの拡張機能は人間専用です?それでは、どのようなファイルであるかを把握する必要がありますか?または、オペレーティングシステムにも何らかの目的がありますか?
回答: 実際、一部のテクノロジーdoはファイル拡張子に依存しているため、ubuntuでこれらのテクノロジーを使用する場合は、拡張子にも依存する必要があります。いくつかの例: gccは、拡張機能を使用してcファイルとc++ファイルを区別します。拡張機能がなければ、それらを区別することはほとんど不可能です(クラスのないc++ファイルを想像してください)。 多くのファイル(docx、jar、apk)は、特に構造化されたzipアーカイブです。通常、コンテンツからタイプを推測できますが、常に可能とは限りません(例:java manifest is optional in jar files)。 そのような場合にファイル拡張子を使用しないことは、ハッキングの回避策でのみ可能となり、非常にエラーが発生しやすくなります。