我的目录中有以下文件data
:myfile1.txt
myfile2.jnx
myfile3.sur
.
我使用以下命令将上述目录的内容复制到另一个位置:
scp data/* remotehost.example.com:/data/
但是,当发出命令后动态更改目录内容时,我发现一个问题。就像当第一个文件仍在复制时,另一个在后台处理此目录的应用程序myfile3.sur
更改为该文件一样。myfile3.sur1
*
我知道当我触发命令时,shell 会转换为该目录中的所有文件名。有没有办法告诉 linux 也包含更改/更新的文件?
答案1
答案2
为了确保传输名称和内容相同的所需文件,请创建一个具有以下逻辑的脚本:
mkdir data/temp.$$
cp data/* data/temp.$$
scp data/temp.$$/* remotehost.example.com:/data/
rm data/temp.$$
通过将文件复制移动到同一服务器中的临时目录,将确保稍后的传输能够获取该文件。
笔记如果后台进程不断更改文件,请尝试与这些进程建立依赖关系。