Saya menggunakan SCP secara teratur untuk memindahkan file di antara server dan saya telah mendengar desas-desus bahwa Anda dapat menggunakan penyelesaian-tab di server jarak jauh jika Anda menggunakan kunci publik, tetapi sejauh ini saya tidak beruntung.
Apa yang saya coba capai adalah sebagai berikut:
scp -r remote.ip.address:/remote/dir/folder<TAB> /local/destiation/
Sebuah ls
pada server jauh /dir/
akan mengungkapkan 3 folder:
/remote/dir/folder_1
/remote/dir/folder_2
/remote/dir/folder_3
Saya ingin SCP mengungkapkan folder mana yang cocok (jika ada), sama seperti penyelesaian jalur normal saat menavigasi sistem file lokal. Penyelesaian Tab tidak bekerja pada jalur lokal di scp
baris perintah, tetapi saya perhatikan bahwa ketika jalur untuk mesin jarak jauh cocok dengan lokal (yaitu: "~ /"), ia menyelesaikan / menyarankan file / folder dari sistem file lokal dan bukan dari jarak jauh.
Menjalankan fungsi-fungsi berikut untuk login tanpa kata sandi:
`ssh remote.ip.address`
... jadi saya tahu tombolnya sudah diatur dengan benar. Ada ide tentang cara agar ini berfungsi?
Jawaban:
Shell mana yang Anda gunakan? Jika Anda menggunakan bash, Anda mungkin harus mengaktifkan penyelesaian "lanjutan" di bash ...
Di ~ / .bashrc Anda
Pada OSX Anda dapat melakukan:
Ke profil ~ / .profile Anda tambahkan:
sumber
Jika ada yang ingin melakukan ini untuk Mac OSX Mountain Lion dengan metode rkthkr, mereka harus menginstal Mac Ports ( http://www.macports.org/install.php ) terlebih dahulu, jalankan perintah yang ia sebutkan:
kemudian konfigurasikan aplikasi terminal mereka sesuai instruksi yang ditemukan di sini: https://trac.macports.org/wiki/howto/bash-completion
sumber
Solusi lain yang mungkin lebih sederhana adalah menggunakan sshfs .
Ini adalah sistem file berbasis sekering yang menautkan folder jauh Anda ke yang lokal. Di bawah tenda, scp digunakan, tetapi Anda dapat mengoperasikan
cp
perintah seperti menyalin file di mesin lokal Anda. Dengan demikian, penyelesaian-tab bekerja secara otomatis! sshfs tersedia untuk sebagian besar distribusi, misalnya dosudo apt-get install sshfs
(ini juga memuatfuse
modul kernel)Mulai seperti ini:
sumber
Saya sangat merekomendasikan menggunakan yafc .
Ini mendukung penyelesaian nama file dan memiliki beberapa fitur berguna lainnya (misalnya get / put / fxp / ls / rm rekursif)
sumber