几十年来,我养成了一个偏执的习惯,经常在 Linux(或任何 unixy)机器的命令行中输入“sync”。我的某些部分认为这将确保文件写入磁盘,而不仅仅是在 RAM 的某个缓冲区中打盹。这在 20 世纪 80 年代很重要。
这还有意义吗?这重要吗?这当然没什么坏处(除了孩子们叫我“老爷爷”),但这有什么好处吗?
(附带问题——Linux 用户是否应该养成有关文件保存安全的新的偏执习惯?)
答案1
我有一个几十年来的偏执习惯,就是在我的 Linux(或任何 unixy)机器的命令行上频繁输入“sync”。
这闻起来就像你觉得你的机器不稳定,要解决根本原因而不是症状。
当你运行时sync
,只有在你运行之后才应该运行它重要的事物。
我心里想,这可以确保文件写入磁盘,而不是只是在 RAM 的某个缓冲区中休息。这在 20 世纪 80 年代很重要。
这不只是一个想法,直到今天仍然在发生这样的事情。
这还有意义吗?这重要吗?这当然没什么坏处(除了孩子们叫我“老爷爷”),但这有什么好处吗?
是的,当然;使用裸命令将一个大文件从一个磁盘复制到另一个磁盘cp
,返回提示后立即拔掉插头,重新启动后对两个文件进行 md5sum ;它们会有所不同。
对于较小的文件,它们不被写入磁盘的可能性要小得多;但仍有可能在不幸的时刻断电,对此你无能为力。而仅为此目的而禁用缓冲区将是一个非常糟糕的主意。
(附带问题——Linux 用户是否应该养成有关文件保存安全的新的偏执习惯?)
不,基本上典型的是:
使用稳定的内核、文件系统等等;不要使用可能包含错误的实验性的东西。
尽早保存,经常保存。并伴有同步。
采取备份。
避免磁盘空间不足。
确保您的硬盘不会很快出现故障。