Sometimes I need to quickly copy a file from my remote server to my local machine. Here's my current workflow:
- I SSH into my remote server, find the file and copy its full path.
- I open new terminal tab and type:
sftp user@hostname:/path/to/file
(where /path/to/file is the path I previously copied)
It's not such a pain but it would be really nice if I could skip step 1 and find the path to the file using tab completion directly when typing the sftp command.
To illustrate, I could start typing sftp user@hostname:/
press TAB and get a listing of folders in /. I could then go on typing ho
press TAB and it would auto-complete to home
, etc. etc.
I'm not sure if such a feature exists and otherwise, is it theoretically possible to write a custom tab completion script as described? Any pointers on where to start?
Best Answer
Thanks to shellholic's answer, I was able to make it (somewhat) work for sftp. First, create the file
/etc/bash_completion.d/sftp
with the following content:Then in bash you need to execute
. /etc/bash_completion.d/sftp
in order to load the script.All I really did was copy/paste the scp completion script from
/etc/bash_completion.d/ssh
and replace scp occurences with sftp.