Linux
由於輸入,Windows 上的文本文件是否比 Linux 上的大?
假設我在 Linux 和 Windows 上有相同的 ASCII 文本文件:
one two three
這兩個文件在兩個作業系統上將
\n
分別\r\n
作為 EOL 字元。這是否意味著Linux上的文件更小?
這個在 linux 上執行的測試似乎是肯定的:
$ echo -en 'one\ntwo\nthree\n' | wc --bytes 14 $ echo -en 'one\r\ntwo\r\nthree\r\n' | wc --bytes 17
您的測試是正確的,儘管嚴格來說是有限的——它只表明在 Linux 上,您的
echo
命令生成的字元串分別佔用 14 和 17 個字節,由wc --bytes
. 每個\n
和\r
佔用一個字節,因此在使用 DOS/Windows 樣式的換行符時,每個換行符都會產生一個字節的損失。嚴格來說,儲存要求取決於你用來寫文件的程序;Linux 和 Windows 都沒有對文件的內容強加任何東西。在 Linux 上可以儲存帶有 CRLF 換行符的文件,在 Windows 上可以儲存帶有 LF 換行符的文件。要確定文件在任一作業系統上的儲存要求,您應該使用您打算在兩個作業系統上使用的任何工具編寫它,並使用作業系統的工具測量文件的大小。
請注意,文件通常以特定儲存單元的倍數使用儲存,因此與換行符相關的變化可能不會產生實際影響。