将STDOUT粘贴到远程主机上的剪贴板的选项



我在远程主机上的.bashrc中有一个非常简单的脚本别名,我经常SSH到这个主机上工作。它允许我输入"pth"作为命令,它的别名是"bash/user/your/home/pathprinter.sh",如下所示:

#!/bin/bash
NOWDIR=`pwd`
echo 'scp  myname@remote.host.institution.name:'"$NOWDIR" 

这使我能够相当快速地将文件从本地机器scp到远程主机,反之亦然,而无需键入太多,因为它会返回输出,然后我单击并拖动以突出显示输出,然后复制并粘贴到本地机器上的另一个终端窗口中。

如果这个脚本存储在我的本地机器上,我可以这样写:

NOWDIR=`pwd`
echo 'scp  myname@remote.host.institution.name:'"$NOWDIR" | pbcopy

,它会直接进入剪贴板。但是,如果在执行此命令时我经常在远程主机上,并且如果我在远程主机上没有sudo权限(但是,我仍然可以在主目录或其他地方安装程序),那么还有办法实现这一点吗?为了节省几秒钟,什么都可以做!

脚本可以运行命令,而不是回显命令,因此您不需要复制粘贴任何内容。

你可以有两个脚本,一个从远程复制到本地

#!/bin/bash
remote_path="${1:?Missing remote path}"
local_path="${2:?Missing local path}"
scp "myname@remote.host.institution.name:$remote_path" "$local_path"

和另一个从本地复制到远程

#!/bin/bash
local_path="${1:?Missing local path}"
remote_path="${2:?Missing remote path}"
scp "$local_path" "myname@remote.host.institution.name:$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>

或者,更好的是,配置ssh为该主机提供一个短名称

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

然后你可以像这样直接使用scp

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

这样,如果您使用该主机的公钥登录,那么当您按下tab时,远程路径将完成,就像它是本地路径一样!

相关内容

  • 没有找到相关文章

最新更新