Linux 是否存在mv命令的scp变体?
我正在编写一个脚本,将文件从本地系统移动到远程系统。它必须通过像ssh这样的加密通道来实现。最好的方法是什么?我可以通过以下两个步骤执行此操作:Linux 是否存在mv命令的scp变体?,linux,scp,mv,Linux,Scp,Mv,我正在编写一个脚本,将文件从本地系统移动到远程系统。它必须通过像ssh这样的加密通道来实现。最好的方法是什么?我可以通过以下两个步骤执行此操作: scp *.jpg user@ip: rm *.jpg 但是,这不是一个原子过程(就像mv是用于本地文件系统的)。如果复制失败,我将不再拥有本地副本。如何编写脚本以确保仅在复制成功时删除本地文件?您可以将rsync与--删除源文件一起使用: 另一种解决方案,一次性推出 因为与编程无关,所以脱离主题。那么我应该在哪里发布这个问题?也不是bash问题
scp *.jpg user@ip:
rm *.jpg
但是,这不是一个原子过程(就像mv是用于本地文件系统的)。如果复制失败,我将不再拥有本地副本。如何编写脚本以确保仅在复制成功时删除本地文件?您可以将
rsync
与--删除源文件一起使用:
另一种解决方案,一次性推出
因为与编程无关,所以脱离主题。那么我应该在哪里发布这个问题?也不是bash问题。scp和mv都不是bash的一部分;它们与任何其他shell的工作方式完全相同。@ChrisMaes:Superuser.com,最有可能。“就像mv是cp,然后删除源代码一样”,这不太正确。分别而言,它仅适用于不同的文件系统。如果在一个文件系统内移动,文件将保留在原来的位置,只更改名称。执行此操作时请注意,如果在scp copy命令期间在/path/src/
中创建了新文件,则这些文件将被删除而不会被复制。
rsync -avz --remove-source-files /local/dir/*.jpg user@ip:/remote/dir
scp /path/src/*.jpg user@host:/path/dst/ && rm /path/src/*.jpg