我经常使用 Terminal.app。当通过连接ssh
到远程 *nix 系统时,我可以继续使用它tab
来完成命令名称并arrow-up/down
浏览命令历史记录。但是,sftp
这样做不起作用,我[
为后者得到了 -escaped 序列,为前者得到了文字制表符。
有什么办法可以让它工作吗?有什么关系吗readline
?
答案1
查看使用 readline。那里有一个使用 sftp 的示例。
答案2
答案3
您也可以尝试雅富。
答案4
在终端中输入:
which sftp
如果结果为/usr/bin/sftp
,则表示您使用的 macOS 内置 SFTP 版本与 GNU 版本相比已过时。更多详细信息这里。
你可以安装 Homebrew 版本(GNU 版本)
brew install openssh
并列出openssh
安装路径:
brew list openssh
例如,您会在这里看到一些二进制文件:
/usr/local/Cellar/openssh/8.4p1_2/.bottle/etc/ (12 files)
/usr/local/Cellar/openssh/8.4p1_2/bin/scp
/usr/local/Cellar/openssh/8.4p1_2/bin/sftp
/usr/local/Cellar/openssh/8.4p1_2/bin/slogin
/usr/local/Cellar/openssh/8.4p1_2/bin/ssh
/usr/local/Cellar/openssh/8.4p1_2/bin/ssh-add
/usr/local/Cellar/openssh/8.4p1_2/bin/ssh-agent
/usr/local/Cellar/openssh/8.4p1_2/bin/ssh-keygen
/usr/local/Cellar/openssh/8.4p1_2/bin/ssh-keyscan
/usr/local/Cellar/openssh/8.4p1_2/libexec/ (4 files)
/usr/local/Cellar/openssh/8.4p1_2/sbin/sshd
/usr/local/Cellar/openssh/8.4p1_2/share/man/ (15 files)
现在输入:
which sftp
结果是/usr/local/bin/sftp
,这是/usr/local/Cellar/openssh/8.4p1_2/bin/sftp
然后尝试 Homebrew 版本的 SFTP 并享受它!