超越远程本地文件

时间:2017-06-06 09:31:53

标签: ssh diff beyondcompare

我想比较两个文本文件,一个在远程,另一个本地。使用diff我会用

做到这一点
ssh user@login "cat myfile.txt" | diff - local.txt

有没有办法使用Beyond Compare执行相同的比较?如果我做

ssh user@login "cat myfile.txt" | bcompare - local.txt

我只显示本地文件。

2 个答案:

答案 0 :(得分:4)

Beyond Compare Pro包含内置的SFTP支持,因此您可以将SFTP URL作为命令行参数直接传递给它。

bcompare local.txt sftp://user:password@server/folder/file.txt

如果您未在URL中提供密码,Beyond Compare将提示您输入密码。

bcompare local.txt sftp://user@server/folder/file.txt

答案 1 :(得分:4)

我在这种情况下使用的一个巧妙的技巧是使用sshfs使远程目录显示为本地的远程目录,以便进行比较:

sshfs user@host:/opt/data /tmp/transfer

然后,您可以使用任何差异工具通过diff -Nur /local/data/dir /tmp/transfer将本地数据与远程数据进行比较,或者像往常一样进行超比较,您可以根据需要来回复制文件。

注意,您可能需要通过包管理器安装sshfs,例如在Debian / Ubuntu上通过apt-get install sshfs

可能的选择:

  • -o PubkeyAuthentication=no:如果您需要密码验证,但ssh首先尝试过多的私钥验证,如果您对此服务器使用私钥验证或根本没有私钥验证则不需要
  • -o sshfs_debug:如果身份验证/连接失败,请打印更多信息
  • -o idmap=user:使用idmap = user选项将连接用户的UID转换为远程用户
  • -o gid=1000:uid,gid - set将文件的所有权报告给定值; uid是用户的数字用户ID,gid是用户的数字组ID。
  • -o nomap=error:如果无法完成用户映射,则会失败

有关详细信息,请参阅https://wiki.archlinux.org/index.php/SSHFS