.txt
拡張子なしでテキストファイルを読み取ることができることがわかりました。どうですか?拡張子を含めたり含まずにこれらのファイルを保存する必要がありますか.txt
?
また、ファイルはどうですか.ini
?私は通常次のように使用します:config.ini
、ここで拡張機能を削除する必要がありますか?
Linuxがファイル拡張子を処理する方法に関する一般的なリソースが役に立ちます。
答え1
UNIX/Linux は Windows の初期 DOS/CP/M レガシーを共有しません。したがって、拡張は通常、ほとんどのUNIXユーティリティとツールにとって重要ではありません。
私は通常コマンドライン専用の環境を使用します。これらのLinux環境での拡張は、オペレーターやユーザーに利便性を提供する以外にはあまり重要ではありません。 (私はKDEやGNOMEの経験が不足しているため、ファイルマネージャが拡張子をどのように処理するのかわかりません。)
しかし、これらの利便性はしばしば重要です。それがconfig.ini
実際にMicrosoftの標準「.ini」形式であれば、拡張機能はそのままにします。 Linuxでは、プレーンテキストファイルには通常拡張子はありませんが、すべてのプログラム設定ファイルに適用されるわけではありません。通常、プログラマーはこれを決定できます。
私の考えでは、「.txt」がLinux上の設定ファイルや他の機械可読文書ではないことを強調したい場合に便利です。ただし、ソースコード配布では、拡張子なしでファイル名をすべて大文字にすることが慣例です(例:README、INSTALL、COPYINGなど)。
いくつかの標準と規則がありますが、コンテンツを他の人と共有しない限り、目的の名前を指定するのに邪魔になることはありません。
Windowsでファイル名を指定すると、そのファイルが実行可能ファイルであることを.exe
シェル(通常は)に示します。explorer.exe
UNIX は、これらの知識をファイルシステムの権限に反映します。正しいx
ビットが設定されると(参考文献を参照)、シェルとカーネル機能によって実行可能であると認識されます(私は信じています)。man chmod
それ以外に、Linuxは気にせず、ほとんどのシェルも同じです。ほとんどのプログラムはファイル内の「タイプ」を探します。
もちろん、file
ファイルを分析してそれが何であるかをどの程度知らせる良いコマンドがあります。私は、ファイルのデータを既知のタイプと一致させることができず、印刷可能なASCII / Unicode文字のみを含む場合は、そのファイルをテキストファイルと見なします。
以下の@Bruce Edigerは絶対に正しいです。カーネルまたはファイルシステムレベル(Linux自体など)には、ファイルの内容がファイルの名前またはファイルを理解する必要があるプログラムと一致する必要があるかどうかを強制または管理することはありません。これは、ファイル名に基づいて操作を実行するシェルやランチャーユーティリティを作成できないという意味ではありません。
答え2
Windowsとは異なり、UNIXシステムでは、ファイルの種類は拡張子によって決まりません。ファイル拡張子は人間の視覚的表示にすぎませんでした。 JPEG foo.cの名前を指定し、Gimpで開くことができます。 Windowsとの別の違いは、UNIXシステムでは完全なファイル名を使用する必要がありますが、Windowsでは通常これを処理することです(例:explorer
AND実行explorer.exe
)。 UNIXでは、単にではなくfoo.sh
呼び出す必要があります。foo.sh
foo
通常、人々は共通の拡張セットを使用する傾向があります。このような慣行は不要ですが、人類全体に有益です。
答え3
全体的に厳密で説明的な名前付け規則を維持することは非常に役に立つと思います。 Unixではこの拡張は必要ありませんが、2つの理由でこれを維持します。
1)Windowsコンピュータでファイルを読みたい場合は、「次のプログラムで開く...」を見つけるよりもファイルを開く方が簡単です。
2)拡張子は、ユーザーがファイルの目的を理解するのに役立ちます。私たちの研究室では:.txt = text file.sgi = irixコンパイルされたバイナリ。linux = linuxコンパイルされたバイナリ
以前のUnixシステム(まだIRIXを使用している)を使用する必要がある場合は、* nixシステムではキャリッジリターンが異なり、Windowsキャリッジリターン文字を使用してファイルを開こうとすると、プログラムがそれを認識しない可能性があることに注意してください。
答え4
いくつかの良い答えがあります。元の質問の一部である「Linuxがファイル拡張子を処理する方法に関する一般的なリソースが役に立ちます」の一部にさらに答えたいと思います。
Linuxが常に特定のプログラムで特定の拡張を開くように拡張を登録できます。この施設はウィンフト。
binfmt_miscは、任意の実行可能ファイル形式を認識し、エミュレータや仮想マシンなどの特定のユーザースペースアプリケーションに渡すことを可能にするLinuxカーネルの機能です。実行可能ファイル形式は、専用ファイルシステムインタフェース(/ procに似ています)を介して登録されます。 Debianベースのディストリビューションは、追加のbinfmtサポートパッケージを通じてこの機能を提供します。
各フォーマットには/proc/sys/fs/binfmt_miscディレクトリに対応するファイルエントリがあり、このエントリを読み取ることで特定のファイルタイプに関する情報を取得できます。