roa*_*ima 22
让我们从mv并不总是原子的语句开始。
我们还要确定原子性是指文件内容,而不是文件名。
对于任何单个文件,如果mv文件在同一文件系统内移动,则由 执行的移动或重命名是原子的。原子性不保证文件只在一处或另一处;该文件很有可能同时出现在两个地方的文件系统中“很短的时间”。当提供时,原子性确实保证文件内容立即完全可用,而不是部分可用。您可以想象mv在这种情况下可以使用ln后跟实现rm。
mv当它执行的移动是从一个文件系统到另一个文件系统时,或者当远程文件系统无法在mv本地实现操作时,它绝对不是原子的。在这些情况下mv,可以说是由等价的 acp后跟rm.
现在,继续讨论跨多个文件的原子性问题。mv每个文件最多只能是原子的,因此如果您有多个文件要一起移动,则实现将一次移动一个。如果你喜欢,mv file1 dir; mv file2 dir; mv file3 dir.
如果您确实需要一组文件同时出现在目标中,请考虑将它们放在一个目录中并移动该目录。这个单个对象(目录)可以自动移动。
No.mv dir1/*与 相同mv dir1/file1 && mv dir1/file2 && mv dir1/fileN。每个单独的动作都是原子的,但不是完整的。
| 归档时间: |
|
| 查看次数: |
3408 次 |
| 最近记录: |