超越远程本地文件

Man*_*edo 7 ssh diff beyondcompare

我想比较两个文本文件,一个在远程,另一个本地.有了差异,我会这样做

ssh user@login "cat myfile.txt" | diff - local.txt
Run Code Online (Sandbox Code Playgroud)

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

ssh user@login "cat myfile.txt" | bcompare - local.txt
Run Code Online (Sandbox Code Playgroud)

我只显示本地文件.

cen*_*tic 7

在这种情况下,我使用的一个巧妙技巧是sshfs使远程目录显示为本地目录,以至于无法比拟:

sshfs user@host:/opt/data /tmp/transfer
Run Code Online (Sandbox Code Playgroud)

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

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

可能的选择:

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

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


Chr*_*edy 5

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

bcompare local.txt sftp://user:password@server/folder/file.txt
Run Code Online (Sandbox Code Playgroud)

如果您未在URL中提供密码,则“超出比较”将提示您输入密码。

bcompare local.txt sftp://user@server/folder/file.txt
Run Code Online (Sandbox Code Playgroud)