Kyl*_*ndt 175
您可以使用 Bash 的进程替换来实现:
diff foo <(ssh myServer 'cat foo')
Run Code Online (Sandbox Code Playgroud)
或者,如果两者都在远程服务器上:
diff <(ssh myServer1 'cat foo') <(ssh myServer2 'cat foo')
Run Code Online (Sandbox Code Playgroud)
Ale*_*sky 116
最后我找到了很好的解决方案:vimdiff
vimdiff /path/to/file scp://remotehost//path/to/file
Run Code Online (Sandbox Code Playgroud)
感谢http://linux.spiney.org/remote_diff_with_vim_and_ssh 另见http://www.vim.org/scripts/script.php?script_id=1075。
小智 17
这是另一个快速而肮脏的命令行秘诀。与选择的答案不同,它在 makefile 内工作:
ssh [login]@[host] "cat [remote file]" | diff - "[local file]"
Run Code Online (Sandbox Code Playgroud)
您可以rsync在试运行模式下使用,如另一个答案中的简要建议。它列出了任何不同的文件。
为此,请使用rvnc选项(r=recursive、v=verbose、n=dry-run、c=checksum)。与rsync在拉模式(rsync [OPTION...] [USER@]HOST:SRC... [DEST]),一个例子是:
rsync -rvnc root@182.18.158.207:/var/www/html/dev/ .
Run Code Online (Sandbox Code Playgroud)
请记住,这不提供有关本地文件还是远程文件更新的信息。只要他们不同。