获取远程复制上的文件,但不能获取本地文件

获取远程复制上的文件,但不能获取本地文件

我有一个文件夹。

我在本地有该文件夹的一份副本,在服务器上也有一份。我根据需要编辑了本地文件夹,然后同步它到服务器。

有没有什么方法可以比较本地和远程这两个副本,并获取远程副本而不是本地副本的文件列表?

答案1

在本地计算机上执行的以下 rsync 命令列出了远程主机上存在但本地主机上不存在的文件。

rsync -av --dry-run --delete somedir/ user@remote:~/somedir/

--dry-run开关仅列出文件,而不实际执行任何操作,该--delete开关与-v(详细)结合列出将被删除的文件,因为它们存在于远程主机上,而不是本地主机上,这是您想要的。

答案2

Unison 文件同步器使用 rsync 算法来完成繁重的工作。我每天都用它。

答案3

如果您已经有 ssh 密钥来执行 rsync,则可以发出远程 ssh 命令并列出目录中的文件,然后将其与本地目录中的副本进行比较。

ssh [email protected] ls -1 ~/foo > /tmp/remote.txt && ls -1 ~/foo > /tmp/local.txt && diff /tmp/remote.txt /tmp/local.txt

额外的功劳,将 diff 的输出通过管道传输到颜色差异为了漂亮。

相关内容