【发布时间】:2014-04-27 09:03:04
【问题描述】:
我正在编写一个脚本,它将文件从本地系统移动到远程系统。它必须通过像 ssh 这样的加密通道来完成。做这个的最好方式是什么?我可以分两步执行此操作,例如:
scp *.jpg user@ip:
rm *.jpg
但是,这不是一个原子进程(就像 mv 用于本地文件系统)。如果复制失败,我也将不再拥有本地副本。如何编写脚本以确保仅在复制成功时才删除本地文件?
【问题讨论】:
-
因为与编程无关,所以离题了。
-
那么我应该在哪里发布这个问题?
-
也不是 bash 问题。 scp 和 mv 都不是 bash 的一部分;它们与任何其他 shell 的工作方式完全相同。
-
@ChrisMaes:Superuser.com,很有可能。
-
"就像 mv 是 cp 然后删除源" 这不太正确。分别地,它只对不同的文件系统是正确的。如果您在一个文件系统中移动,该文件将保留在原处,只是更改名称。