如何通过 ssh 进行 diff?

如何通过 ssh 进行 diff?

假设唯一可用的连接是 ssh,我如何在机器之间区分文件/文件夹?

答案1

你可以用 Bash 的流程替代

 diff foo <(ssh myServer 'cat foo')

或者同样

 ssh myServer cat foo | diff foo -

或者,如果两者都在远程服务器上:

diff <(ssh myServer1 'cat foo') <(ssh myServer2 'cat foo')

答案2

最后我找到了很好的解决方案:vimdiff

vimdiff /path/to/file scp://remotehost//path/to/file

谢谢http://linux.spiney.org/remote_diff_with_vim_and_ssh 也可以看看http://www.vim.org/scripts/script.php?script_id=1075

答案3

如果你只是想看看哪些文件不同,而不是实际文件的差异,那么你可以使用rsync --dry-run

答案4

使用 scp 将文件带到一台普通机器并在那里进行差异比较?

或者,如果你只是想知道文件无论是否不同,在每台机器上使用 md5sum 对它们进行哈希处理。

您还可以研究类似SSH文件系统,但我不知道像 diff 这样的算法的表现如何。

相关内容