【发布时间】:2017-04-09 19:56:14
【问题描述】:
我正在编写一个程序来更改文件。我想要的语义是旧版本应该保留在文件系统上,直到新版本被写入。也就是说,从旧版本到新版本之间的转换应该自动发生。在 Linux 或任何 POSIX 系统上执行此操作的正确方法是什么?
【问题讨论】:
我正在编写一个程序来更改文件。我想要的语义是旧版本应该保留在文件系统上,直到新版本被写入。也就是说,从旧版本到新版本之间的转换应该自动发生。在 Linux 或任何 POSIX 系统上执行此操作的正确方法是什么?
【问题讨论】:
以原子方式执行此操作的规范方法是创建一个临时文件,完成后,将其移动以覆盖原始文件。然后你进入一个完全不同的问题领域。看看这个Is rename() without fsync() safe?
【讨论】:
以不同的名称写入新文件,然后调用rename。
【讨论】:
我正在编写一个程序来更改文件
已经存在的程序是patch。
运行diff -[option] old-file new-file >> name.patch
例如diff -Naur old-file new-file >> name.patch
... 并使用 patch 命令编辑文件,例如 patch -p0 < name.patch
【讨论】: