![运行 cp 后在源目录下创建的文件是否会被复制?](https://linux22.com/image/25556/%E8%BF%90%E8%A1%8C%20cp%20%E5%90%8E%E5%9C%A8%E6%BA%90%E7%9B%AE%E5%BD%95%E4%B8%8B%E5%88%9B%E5%BB%BA%E7%9A%84%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E4%BC%9A%E8%A2%AB%E5%A4%8D%E5%88%B6%EF%BC%9F.png)
假设我用来cp
将目录复制到另一个地方。如果这个过程需要很长时间,并且我在源目录下创建一个新文件,它会被复制,还是依赖于某些东西?
答案1
如果您在操作时创建新文件cp
,则很可能不会拾取该文件。这可能取决于cp
实现:有些在启动时收集文件列表,其他则按块进行。如果是递归复制,cp
我见过的所有实现都是逐个目录工作的,因此如果将文件添加到cp
尚未遍历的目录中,它将被复制。
如果中途添加了一个文件,并且想要复制它,请rsync
稍后运行(复制完成并且新文件完全写入之后)。 Rsync只会复制添加的文件。
您可以从一开始就运行 rsync(用于rsync -a
执行递归复制并保留元数据)。 Rsync 几乎可以做所有cp
可以做的事情,甚至更多,因此您可以忽略cp
并始终使用rsync
(如果您愿意的话)(除了在没有的嵌入式系统上rsync
)。