将文件传输(而不是复制)到远程计算机?

将文件传输(而不是复制)到远程计算机?

我知道使用 scp 通过 SSH 可以在主机之间复制文件,但如果我不想复制它们,而是移动完全结束它们?

我可以通过 SSH 或其他方式使用安全连接来使用什么命令?

谢谢!

答案1

不存在“移动”这回事。

在单个文件系统上,您可以通过重命名来“移动”文件;文件本身保持不变,但会添加新名称并删除旧名称(这也不能保证是原子的 - 如果“a”和“b”都存在,则调用mv a b可能会非常短暂地让两个名称引用同一个文件“a”,然后旧名称就会消失)。

在一般情况下,要将文件从一个位置移动到另一个位置,您需要创建一个具有新名称的文件,将数据复制到其中,然后删除旧文件。在本地计算机上,但文件系统不同,“mv”命令会在后台为您执行此操作 - 您可以通过运行来查看此过程strace mv a /other/filesystem/b

要在没有共享网络文件系统的计算机之间执行此操作,您必须自己一步一步地执行此操作,例如scp a otherhost:/path/to/new/a && rm a(&符号表示只有当 scp 成功时才会删除本地文件,这意味着远程复制极有可能成功完成)。

相关内容