Bash

跨伺服器比較文件

  • March 2, 2022

曾幾何時,我記得大致是這樣的:

vimdiff <(scp://some_server/home/user/.zshrc) <(scp://some_server-qa/home/user/.zshrc)

(其中some_serversome_server-qa在我~/.ssh/config的使用者和密鑰等中定義,因此沒有必要將其包含在外殼中)。

問題是我無法弄清楚需要什麼語法才能完成這項工作,而且我無法通過Google搜尋找到任何東西。我敢肯定這裡有人知道我錯過了什麼。我錯過了什麼?

vim確實支持使用某些 URL 打開遠端文件,因此您可以這樣做:

vimdiff scp://some_server{,-qa}/home/user/.zshrc

輸入文件:h scpvim

如果在建構時未啟用該支持,您始終可以這樣做:

vimdiff -R <(ssh some_server cat /home/user/.zshrc) \
          <(ssh some_server-qa cat /home/user/.zshrc)

儘管您將無法修改遠端文件。

-R是為了vim提醒您編輯這些文件是沒有意義的(儘管您總是可以這樣做::w !ssh host 'cat > file'將編輯後的文件發回(或者只是:w !ssh host '>file'如果您的登錄外殼host也是預設zsh情況$NULLCMDcat的位置))。

引用自:https://unix.stackexchange.com/questions/692494