这可能是一个非常微不足道的事情。
文件存储操作系统是否依赖?
为什么文本文件从 Dos 移动到 Unix 时会发生变化,是 Unix 中的编辑器对某些字符的解释不同,还是文件本身在从 Dos 移动到 Unix 时会发生变化,因此实用程序 Dos 到 Unix。
为什么 Java 类文件可以从 Dos 移动到 Unix 并且不会改变?
什么是平台无关存储?
这可能是一个非常微不足道的事情。
文件存储操作系统是否依赖?
为什么文本文件从 Dos 移动到 Unix 时会发生变化,是 Unix 中的编辑器对某些字符的解释不同,还是文件本身在从 Dos 移动到 Unix 时会发生变化,因此实用程序 Dos 到 Unix。
为什么 Java 类文件可以从 Dos 移动到 Unix 并且不会改变?
什么是平台无关存储?
字节和字符的存储方式存在根本区别。看:
http://www.joelonsoftware.com/articles/Unicode.html
有关各种字符集的描述以及它们在各种操作系统之间的差异(以及更多)。
Java Class 文件是二进制文件,并且总是以 Big Endian 存储。这意味着无论它们在什么操作系统之间移动,它们总是相同的。
文件存储不是独立于操作系统的,即使内容可能相同,它的解释方式也不同。以防万一,多年前我不得不将(Business Basic)程序和数据从 Datageneral 小型机移植到 DOS。这些文件使用 8 位编码,必须先翻译(到 7 位),然后才能在 DOS 上“理解”。
简短的回答:这取决于。
文本文件在从 DOS 移动到 Unix 时不会自行更改:例如,尝试使用 USB 密钥移动它们。
使用第三方软件复制时,它们可能会发生变化:ftp
具有处理文本转换的选项。
此外,这不仅取决于操作系统,还取决于文件系统。在 OS X 之前的 mac(HFS 文件系统)上,文件存储在两个分支上:数据和资源。当在没有分叉概念的文件系统上复制时,文件可以复制为包含数据和资源分叉的单个文件 (AppleSingle) 或两个单独目录中的两个文件 (AppleDouble)。
不,文件不会更改。只有用于编辑它们的约定。
可以改变的是用于编目和列出目录等的文件系统结构和元数据(即时间戳)。此外,文件自然会在加密的文件系统上加密,但文件系统的复杂性对于通过系统调用读取文件的应用程序几乎总是透明的(如果您正在编写分区调整大小或其他低级磁盘工具,它们将是相关的)。
澄清一下,Linux 操作系统中没有任何内容需要vim 或 emacs 才能使用 unix 约定。事实上,许多编辑器和应用程序都可以检测换行编码并进行调整。如何处理文件取决于软件,而不是操作系统。
通常,文件系统将按照要求写入文件的方式存储文件。读取文件的程序将解释文件中的字节。
For example, in DOS (and Windows) the newline consists of two bytes, but on Unix it's only one byte. But this is only an standard. Programs on Unix can read files with two-byte newlines. These programs just need to know how what the newlines are.