設定ファイルで Linux システムの EOL を変更して、\n の代わりに \r\n を使用することはできますか?

設定ファイルで Linux システムの EOL を変更して、\n の代わりに \r\n を使用することはできますか?

Linux システムのデフォルトの EOL を、再コンパイルせずに \n から \r\n に変更したいと考えています。これは、どのような設定 (おそらくロケール) でも可能ですか?

理由: ファイルを作成するすべてのユーザーに対して、ファイルが正しくフォーマットされていることを確認する必要があります (unix2dos または他のものの使用を強制することなく)

答え1

この要約を一番上に載せるために、回答を編集しています。あなたの基本的な質問に対する直接の答えは、「いいえ、これは多くの Linux システムで一般的にサポートされているオプションではありません」であると私は信じています。以下は、より詳細な説明です。

これが簡単にできるとは思えません。理論的には、複数のオペレーティングシステムで異なる改行文字が使用されています。Wikipedia: 表現理論上、プログラマーは「改行文字」(古い QNX システムのレコード区切り文字のような文字、または MS-DOS のような \r\n のような文字)を表すときに \n または \r\n を参照すべきではありません。そうすれば、誰かが(すぐに、または将来的に)コードを再利用したい場合、1 つの変数を変更するだけで済みます。

実際には、多くのプログラマーが値を「ハードコード」することが知られています。「Linux from Scratch」を使用して、システムを好きなようにカスタマイズできます。ソースコードを変更すれば、システムのすべての構成ファイルで、好みの改行シーケンスを使用するようにできると思います。

しかし、後でユーザーが特定のテキスト エディターや特定の Web ブラウザーを使用したいと思ったらどうなるでしょうか。この変更に対応するためだけに、Google Chromium Web ブラウザーのソース コードの独自のバリエーションを「修正」する覚悟はありますか。

ご覧の通りChrisEdmontonのコメント、この変更を実装するのは実際には珍しいことです。つまり、このような柔軟性を実装するという 1 人の目標では、多くのことがうまくいかないことに気付く可能性が高いということです。そのため、かなりの数の問題が発生します。最初は問題ないように見えても、後になってかなりの数の問題に遭遇する可能性が高いと思います。

個人的には、私のコンピューター データには価値があります。バックアップする手間もかけないほど価値のないデータであっても、問題を引き起こす可能性のあることをわざわざ行いたくないと思うほどの価値があります。(万が一の大惨事でデータが失われても構わないと思っているからといって、比喩的に言えば家の片側の床にガソリンを撒き散らし、大惨事を引き起こす可能性のある状況をわざと無駄に引き起こしたいわけではありません。)

したがって、ファイルシステム ドライバーやメモリを処理するカーネル コード、システムのその他のすべての側面など、さまざまなものを検討する意思がない限り、これを追求する価値はおそらくありません。変更を実装するには別の方法を使用することをお勧めします。

はい、Linux はオープンソースであるべきなので、カスタマイズ可能であるべきだという議論があることは知っています。しかし、現実には Linux は非常に成長しているため、変更を加えると重大な結果を招く可能性があります。Linux にはさまざまなバージョン (Debian、Ubuntu、Mint、Red Hat、SUSE など) があり、他の Unix 系オペレーティング システム (BSD、Solaris、Mac OS X) や他のオペレーティング システム (Windows、DOS、CPM、VMS) があることに留意してください。理論上は、このような変更は、Microsoft にクローズド ソースのオペレーティング システムに変更を加えるよう説得するよりも簡単なはずです。実際には、より人気のあるソフトウェアに変更を加えるには、説得しなければならない人が大勢いるかもしれません。変更を加えると何かが壊れる可能性があるため、変更は重要で実質的なメリットがある場合にのみ行う必要があります。より軽薄な変更は、実装するかもしれない困難に見合う価値がない可能性があります。

このような変更を簡単に変更できるオプションにしたい人もいるでしょう。オプションが多すぎると、ユーザー インターフェイスが乱雑になり、ドキュメントが乱雑になり、ソース コードが複雑になる (追加された複雑さがかなり小さい場合でも) という問題があります。そのため、単純化のために標準を作成し、オプションを減らすというアイデアを推進する人もいます。したがって、「このオプションをサポートするソフトウェアの改行文字をカスタマイズする」などの変更は、そのようなオプションに期待される利点よりも多くの問題を引き起こす可能性があります。

あなたが挙げた理由は、ファイルを作成するときにユーザーに「unix2dos」を使用させたくないというものです。ユーザーはどのようにファイルを作成するのでしょうか。ユーザーは「nano」を実行するのでしょうか。「nano」をスクリプトに置き換えて、通常の nano を実行し、その後自動的に unix2dos を実行することもできます。ユーザーがファイルを作成/編集するプロセスを変更したり、\r\n を期待する可能性のある他のマシンにファイルを転送する方法に影響するプロセスを変更したりすることもできます (その後、ファイルが Linux マシン上にある間は、ファイルが \n のみを使用していてもかまいません)。このようなターゲットを絞ったアプローチは、システム全体の動作に影響を与えるシステム全体の変更を試みるよりも、意図しない結果を招くことなく、うまく機能する可能性がはるかに高くなります。

関連情報