<分区>
我正在编写一个脚本,将文件从本地系统移动到远程系统。它必须通过像 ssh 这样的加密 channel 来进行。做这个的最好方式是什么?我可以分两步执行此操作,例如:
scp *.jpg user@ip:
rm *.jpg
但是,这不是一个原子进程(就像 mv 用于本地文件系统)。如果复制失败,我也将不再拥有本地副本。我如何编写脚本以确保仅在复制成功时才删除本地文件?
<分区>
我正在编写一个脚本,将文件从本地系统移动到远程系统。它必须通过像 ssh 这样的加密 channel 来进行。做这个的最好方式是什么?我可以分两步执行此操作,例如:
scp *.jpg user@ip:
rm *.jpg
但是,这不是一个原子进程(就像 mv 用于本地文件系统)。如果复制失败,我也将不再拥有本地副本。我如何编写脚本以确保仅在复制成功时才删除本地文件?
最佳答案
您可以将 rsync
与 --remove-source-files
一起使用:
rsync -avz --remove-source-files /local/dir/*.jpg user@ip:/remote/dir
关于linux - mv 命令有 scp 变体吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22534309/
相关文章:
java - RandomAccessFile.seek() 在 Linux 上不工作
linux - 当我在我的包的配置文件中添加一个新的配置参数时,我应该怎么做?
python - 通过执行 pscp 的 Windows 任务计划程序运行 python 脚本时出现问题
shell - 重命名命令默认情况下不会覆盖,如何强制覆盖?
linux - 将具有唯一名称的多个文件移动到新文件夹并附加到文件名
linux - root 或非 root 用户的 HDFS start-all.sh
linux bash 重定向与 stdin 和 stdout 相同的文件