キャリッジリターンのため、Windows上のLinuxよりもテキストファイルが大きいのですか?

キャリッジリターンのため、Windows上のLinuxよりもテキストファイルが大きいのですか?

LinuxとWindowsに同じASCIIテキストファイルがあるとしましょう。

one
two
three

これら2つのファイルには、両方のオペレーティングシステムにそれぞれ\nおよびEOL文字があります。\r\n

これはLinuxでファイルが小さいことを意味しますか?

このテストはLinuxで行われ、肯定的なようです。

$ echo -en 'one\ntwo\nthree\n' | wc --bytes 
14
$ echo -en 'one\r\ntwo\r\nthree\r\n' | wc --bytes 
17

ベストアンサー1

厳密に言えば制限的ですが、テストは正確です。 Linuxでは、コマンドで生成された文字列がechoそれぞれ14バイトと17バイトを占めることを示しています(wc --bytes.\nと で\rそれぞれ1バイトを占めるため、LinuxではDOS / Windowsスタイルの改行文字を使用するとき)。 、改行ごとに1バイトが失われます。

厳密に言えば、保存要件はファイルの作成に使用するプログラムによって異なります。 LinuxやWindowsはファイルの内容に何も課しません。 CRLF改行文字を含むファイルはLinuxに保存でき、LF改行文字を含むファイルはWindowsに保存できます。両方のオペレーティングシステムのいずれかでファイルの保存要件を決定するには、使用するツールを使用して両方のオペレーティングシステムにファイルを作成し、オペレーティングシステムツールを使用してファイルサイズを測定する必要があります。

ファイルは通常、特定のストレージ単位の倍数を使用して保存されるため、改行に関連する変更は実際の影響を与えない可能性があります。

おすすめ記事