就地编辑文件

时间:2017-04-09 19:56:15

标签: linux file posix edit

我正在编写一个程序来更改文件。我想要的语义是旧版本应保留在文件系统上,直到编写新版本为止。也就是说,从旧版本到新版本之间的过渡应该是原子性的。在Linux或者最好是任何POSIX系统上执行此操作的正确方法是什么?

3 个答案:

答案 0 :(得分:3)

以原型方式执行此操作的规范方法是创建一个临时文件,当您完成后,将其移动以覆盖原始文件。然后你进入另一个问题领域。看看这个Is rename() without fsync() safe?

答案 1 :(得分:0)

以不同的名称编写新文件,然后拨打y1=rnorm(10,0,1) y2=rnorm(10,0,1) y3=rnorm(10,0,1) x=seq(1,10,1) mat=cbind(y1,y2,y3) a=c(1,4,7) b=c(2,5,8) g=c(3,6,9) v=as.factor(paste(expression(alpha)," = ",a,", ", expression(beta)," = ",b,", ", expression(gamma)," = ",g)) matplot(x,mat,type="l",col=1:3,lty=1,xlab="x",ylab="mat",main="Legend Practice") legend("bottomright",col=1:3,lty=1,legend=levels(v))

答案 2 :(得分:0)

  

我正在编写一个程序来更改文件

现有的计划是patch

运行diff -[option] old-file new-file >> name.patch

e.g。 diff -Naur old-file new-file >> name.patch

...并使用patch命令编辑文件,例如patch -p0 < name.patch