2015-10-17 44 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> 

有了这个,如果你有与该主机公共密钥登录,远程路径将完成这是一条当地的道路!

相关问题