2015-10-17 42 views
-1

我有一個非常簡單的腳本,它在遠程主機上的.bashrc中有別名,我經常使用SSH進行工作。它使我進入「PTH」的命令,以及別名「慶典/user/your/home/pathprinter.sh」,主要內容如下:將STDOUT粘貼到遠程主機上的剪貼板上的選項

#!/bin/bash 

NOWDIR=`pwd` 
echo 'scp [email protected]:'"$NOWDIR" 

這使我能夠很快SCP的一文件從本地機器傳輸到遠程主機,反之亦然,而不必輸入太多,因爲它會回顯輸出,然後單擊並拖動以突出顯示,然後複製並粘貼到本地計算機上的另一個終端窗口中。

如果這個腳本保存在我的本地機器上,我可以這樣寫:

NOWDIR=`pwd` 
echo 'scp [email protected]:'"$NOWDIR" | pbcopy 

,它會直接進入到剪貼板。但是,如果我在執行此命令時經常在遠程主機上運行,​​並且如果遠程主機上沒有sudo權限(但我仍然可以在主目錄或其他地方安裝東西),是否仍有辦法實現此目的?任何可以節省幾秒鐘的東西!

+1

我認爲它只適用於您轉發X11,然後pbcopy也可以運行遠程。我不認爲有另一種選擇(找不到ANSI轉義代碼來設置剪貼板)。 – eckes

+0

謝謝。我會研究X11轉發。 –

回答

1

而不是回顯命令,該腳本可以運行它,所以你不需要複製粘貼任何東西。

你可以有兩個劇本,一個從遠程複製到本地

#!/bin/bash 
remote_path="${1:?Missing remote path}" 
local_path="${2:?Missing local path}" 
scp "[email protected]:$remote_path" "$local_path" 

,另一個從本地複製到遠程

#!/bin/bash 
local_path="${1:?Missing local path}" 
remote_path="${2:?Missing remote path}" 
scp "$local_path" "[email protected]:$remote_path" 

您可以執行它們作爲

copy-remote-to-local <path copied from the other terminal> . 
copy-local-to-remote file.txt <whatever path you want on remote system> 

或者,甚至更好,configure ssh有一個該主機的簡稱

Host serv 
HostName remote.host.institution.name 
User myname 

,然後當你按下tab,就像你可以直接使用scp這樣

scp serv:<remote path> <local path> 
scp <local path> serv:<remote path> 

有了這個,如果你有與該主機公共密鑰登錄,遠程路徑將完成這是一條當地的道路!

相關問題