scp
リモートサーバーからローカルサーバーにファイルをコピーするために使用します。本当に不便なのは、ファイルパスを正確に入力する必要があることです。ファイル名とフォルダ構造がかなり長いことがあるので、私はオートコンプリートに頼るのに慣れています。ローカルでファイルを検索するときと同じように、各ディレクトリのファイル名を表示してオートコンプリートするようにしたいと思います。
これで、SSHだけでファイル名を見つけてSCPコマンドで使用できるようになりました。しかし、もちろん、これは膨大なエネルギーの無駄になるでしょう。あるいは、GUIを使用することもできますが、コマンドラインがより軽いので、GUIを使用しないことをお勧めします。
正確なファイル名を覚えなくてもSCPを使用する方法はありますか?
ベストアンサー1
bash-completion
(Cygwin、Debian、Ubuntu、および他の多くのディストリビューションで利用可能)scp
プロンプトなしでシェルが必要なサーバーにアクセスできる限り、オートコンプリートをサポートします(バッチモードssh
で使用されます。を参照)。ssh_config(5)
マニュアルページ詳細はこちら)。
この機能を有効にする最も簡単な方法はを使用することですssh-agent
。デスクトップ環境では、この機能がデフォルトで有効になっている可能性があります。
ssh-add
現在実行中のエージェント(存在する場合)に主キーを追加します。実行中のエージェントがない場合は、以下を実行してエージェントを起動できます。
eval $(ssh-agent)
scp
エージェントがキーを認識したら、そのキーを使用してアクセスできるサーバーに関連するコマンドを自動補完できます。
オートコンプリート機能zsh
もサポートされていると確信しています。ただし、同じ注意事項がありますが、Debianパッケージには必要なサポートが含まれています。次のアイデアで有効にする必要があります。scp
zsh-common
.zshrc
autoload -U compinit && compinit
(サポートされているすべての完成品をロードします。)