Jak*_*fin 10
这实际上可以通过安装 Shell Integration 来实现。请注意,Shell 集成需要安装在您通过 ssh 连接的任何服务器上,而不仅仅是安装在本地计算机上。从这个链接:
\n\n\niTerm 最近推出了一项名为 Shell Integration 的功能。使用此功能,我们可以直接从 iTerm 2 方便地上传和下载文件。按下 Option 键将文件拖到窗口中会将文件上传到远程 ssh 连接。使用 ls 命令右键单击文件将显示包含下载文件的上下文列表。
\n\n
\n- 当 sshing 到远程服务器时,单击 \xe2\x80\x9ciTerm2->Install Shell Integration\xe2\x80\x9d。
\n- 确保服务器具有正确的 FQDN 作为主机名,并且可以通过此主机名进行连接。(你可以用
\nhostname -f它来检查)- 如果您\xe2\x80\x99使用私钥身份验证,那么您的.ssh目录中应该有id_rsa。但是,您还应该将 id_rsa.pub 放入 .ssh 目录中才能使用此功能。
\n
很抱歉回答晚了,但我只是想做同样的事情并遇到了你的问题。我想一旦找到解决方案我就会发布我的发现。
\nRob*_*obM 10
我在 iTerm2 中使用 \xe2\x8c\x98+Clicking to download via SCP 并没有取得太大成功,因为我有一组复杂的规则,涉及~/.ssh/config.
但我找到了一个优雅的解决方法:一个 shell 函数,它写入 STDOUT 以触发 iTerm2 捕获输出并将其保存为文件!
\n我保留以下代码片段(Toolbelt \xe2\x86\x92 Snippets),执行它来定义命令download:
alias download="bash <(base64 -d <<<\'IyEvYmluL2Jhc2gKaWYgWyAkIyAtbHQgMSBdOyB0aGVuCiAgZWNobyAiVXNhZ2U6ICQwIGZpbGUg\nLi4uIgogIGV4aXQgMQpmaQpmb3IgZmlsZW5hbWUgaW4gIiRAIgpkbwogIGlmIFsgISAtciAiJGZp\nbGVuYW1lIiBdIDsgdGhlbgogICAgZWNobyBGaWxlICRmaWxlbmFtZSBkb2VzIG5vdCBleGlzdCBv\nciBpcyBub3QgcmVhZGFibGUuCiAgICBjb250aW51ZQogIGZpCgogIGZpbGVuYW1lNjQ9JChlY2hv\nIC1uICIkZmlsZW5hbWUiIHwgYmFzZTY0KQogIGZpbGVzaXplPSggJCh3YyAtYyAiJHtmaWxlbmFt\nZX0iKSApCiAgcHJpbnRmICJcMDMzXTEzMzc7RmlsZT1uYW1lPSR7ZmlsZW5hbWU2NH07c2l6ZT0k\ne2ZpbGVzaXplWzBdfToiCiAgYmFzZTY0IDwgIiRmaWxlbmFtZSIKICBwcmludGYgJ1xhJwpkb25l\nCg==\')"\n\nRun Code Online (Sandbox Code Playgroud)\nBase64 编码的字符串解码为:
\n#!/bin/bash\nif [ $# -lt 1 ]; then\n echo "Usage: $0 file ..."\n exit 1\nfi\nfor filename in "$@"\ndo\n if [ ! -r "$filename" ] ; then\n echo File $filename does not exist or is not readable.\n continue\n fi\n\n filename64=$(echo -n "$filename" | base64)\n filesize=( $(wc -c "${filename}") )\n printf "\\033]1337;File=name=${filename64};size=${filesize[0]}:"\n base64 < "$filename"\n printf \'\\a\'\ndone\nRun Code Online (Sandbox Code Playgroud)\n依赖于iTerm2 的下载协议
\n显示来自 iTerm2 的通知的示例会话:
\n\n| 归档时间: |
|
| 查看次数: |
10636 次 |
| 最近记录: |