Linux

SCP 文件名選項卡完成

  • April 6, 2013

我經常使用 SCP 在伺服器之間移動文件,我聽說如果你使用公鑰,你可以在遠端伺服器上使用 tab-completion,但到目前為止我還沒有運氣。

我想要完成的是以下內容:

scp -r remote.ip.address:/remote/dir/folder<TAB> /local/destiation/

ls遠端伺服器上的一個/dir/將顯示 3 個文件夾:

/remote/dir/folder_1
/remote/dir/folder_2
/remote/dir/folder_3

我希望 SCP 顯示哪些文件夾匹配(如果有),就像導航本地文件系統時的正常路徑完成一樣。選項卡完成確實適用於scp命令行中的本地路徑,但我注意到當遠端機器的路徑與本地路徑匹配時(即:“~/”),它會從本地文件系統完成/建議文件/文件夾而不是比遙控器。

執行以下程式碼可實現無密碼登錄:

`ssh remote.ip.address`

…所以我知道密鑰設置正確。關於如何使它工作的任何想法?

你用的是哪個外殼?如果您使用的是 bash,則可能需要在 bash 中啟用“高級”完成…

if [ -f /etc/bash_completion ]; then
   . /etc/bash_completion
fi

在你的 ~/.bashrc

在 OSX 上,您可以執行以下操作:

$ sudo port install bash-completion

在您的 ~/.profile 添加:

if [ -f /opt/local/etc/bash_completion ]; then
   . /opt/local/etc/bash_completion
fi

如果有人想使用 rkthkr 的方法為 Mac OSX Mountain Lion 執行此操作,他們必須先安裝 Mac Ports ( http://www.macports.org/install.php ),然後執行他提到的命令:

$ sudo port install bash-completion

然後按照以下說明配置他們的終端應用程序:https ://trac.macports.org/wiki/howto/bash-completion

引用自:https://serverfault.com/questions/26768