Bash
跨伺服器比較文件
曾幾何時,我記得大致是這樣的:
vimdiff <(scp://some_server/home/user/.zshrc) <(scp://some_server-qa/home/user/.zshrc)
(其中
some_server
和some_server-qa
在我~/.ssh/config
的使用者和密鑰等中定義,因此沒有必要將其包含在外殼中)。問題是我無法弄清楚需要什麼語法才能完成這項工作,而且我無法通過Google搜尋找到任何東西。我敢肯定這裡有人知道我錯過了什麼。我錯過了什麼?
vim
確實支持使用某些 URL 打開遠端文件,因此您可以這樣做:vimdiff scp://some_server{,-qa}/home/user/.zshrc
輸入文件
:h scp
。vim
如果在建構時未啟用該支持,您始終可以這樣做:
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
情況$NULLCMD
下cat
的位置))。