我有一个myfile
必须定期重新生成的文件。重新生成需要几秒钟。另一方面,我必须定期读取生成的最后一个(或倒数第二个)文件。保证我正在阅读一个完整生成的文件并且一旦我开始阅读它,我将能够完全阅读它的最佳方法是什么?
一种可能的解决方案是
myfile
实际上是指向最后生成的文件的软链接,例如myfile.last
.myfile.new
myfile.new
移到myfile.last
我看到的问题(我不知道答案)是:如果myfile
在 mv 发生时另一个脚本正在复制,是否cp
正确完成?
另一种可能的解决方案是生成名称上带有时间戳的文件,例如myfile-2014-09-03_12:34
,myfile
它再次是指向上次创建的文件的软链接。创建后应更改此链接以指向新文件。再次:类似的可能性有多大
cp myfile anotherfile
复制损坏的文件?
如果您在同一个文件系统中移动,mv
则是原子的——它只是重命名,而不是复制内容。因此,如果您这一代人的最后一步是:
mv myfile.new myfile.last
Run Code Online (Sandbox Code Playgroud)
读取过程将始终看到文件的旧版本或新版本,永远不会看到任何不完整的内容。
归档时间: |
|
查看次数: |
3527 次 |
最近记录: |