我想比较两个文本文件,一个在远程,另一个本地。使用diff我会用
做到这一点ssh user@login "cat myfile.txt" | diff - local.txt
有没有办法使用Beyond Compare执行相同的比较?如果我做
ssh user@login "cat myfile.txt" | bcompare - local.txt
我只显示本地文件。
答案 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。