我做了这样一个实验,复制文件的过程中,如果文件本身正在发生着变化,那最后复制结束后的文件应该是处在什么过程中呢?
是复制开始时的状态,还是复制结束时的状态,还是中间文件的某个状态。
使用脚本file.sh来不断地想file.dmp文件中插入行,文件会一直变大。
file.sh:
点击(
此处
)折叠或打开
- #!/bin/bash
- i=1
- while true
- do
- i=$[i+1]
- echo $i >> file.dmp
- done
中断脚本。
此时file.dmp的最后一行数字是 152940.
我们使用$ cp file.dmp file.dmp.bak 进行复制,然后立即运行file.sh脚本插入行。
等cp命令结束后(文件要够大,否则时间很快,不能出效果),查看file.dmp.bak文件的最后一行,发现是152940.
总结结论是复制生成的文件会和开始复制时的状态一致,及时在复制的过程中源文件也在不断的变化。
另外验证使用rsync效果一样。
欢迎大家佐证。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24052272/viewspace-2133614/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24052272/viewspace-2133614/