【问题标题】:Is there an scp variant of mv command? [closed]是否有 mv 命令的 scp 变体? [关闭]
【发布时间】:2014-04-27 09:03:04
【问题描述】:

我正在编写一个脚本,它将文件从本地系统移动到远程系统。它必须通过像 ssh 这样的加密通道来完成。做这个的最好方式是什么?我可以分两步执行此操作,例如:

scp *.jpg user@ip:
rm *.jpg

但是,这不是一个原子进程(就像 mv 用于本地文件系统)。如果复制失败,我也将不再拥有本地副本。如何编写脚本以确保仅在复制成功时才删除本地文件?

【问题讨论】:

  • 因为与编程无关,所以离题了。
  • 那么我应该在哪里发布这个问题?
  • 也不是 bash 问题。 scp 和 mv 都不是 bash 的一部分;它们与任何其他 shell 的工作方式完全相同。
  • @ChrisMaes:Superuser.com,很有可能。
  • "就像 mv 是 cp 然后删除源" 这不太正确。分别地,它只对不同的文件系统是正确的。如果您在一个文件系统中移动,该文件将保留在原处,只是更改名称。

标签: linux scp mv


【解决方案1】:

另一种解决方案,一次性启动

scp /path/src/*.jpg user@host:/path/dst/ && rm /path/src/*.jpg

【讨论】:

  • 注意,如果在/path/src/ scp 复制命令中创建了新文件,它们将被删除而不是复制。
【解决方案2】:

您可以将rsync--remove-source-files 一起使用:

rsync -avz --remove-source-files /local/dir/*.jpg user@ip:/remote/dir 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 2023-03-16
    • 2011-09-07
    • 2018-03-16
    • 2014-01-13
    • 1970-01-01
    • 2012-12-16
    相关资源
    最近更新 更多