运行 cp 后在源目录下创建的文件是否会被复制?

运行 cp 后在源目录下创建的文件是否会被复制?

假设我用来cp将目录复制到另一个地方。如果这个过程需要很长时间,并且我在源目录下创建一个新文件,它会被复制,还是依赖于某些东西?

答案1

如果您在操作时创建新文件cp,则很可能不会拾取该文件。这可能取决于cp实现:有些在启动时收集文件列表,其他则按块进行。如果是递归复制,cp我见过的所有实现都是逐个目录工作的,因此如果将文件添加到cp尚未遍历的目录中,它将被复制。

如果中途添加了一个文件,并且想要复制它,请rsync稍后运行(复制完成并且新文件完全写入之后)。 Rsync只会复制添加的文件。

您可以从一开始就运行 rsync(用于rsync -a执行递归复制并保留元数据)。 Rsync 几乎可以做所有cp可以做的事情,甚至更多,因此您可以忽略cp并始终使用rsync(如果您愿意的话)(除了在没有的嵌入式系统上rsync)。

相关内容