I remote copied a file to my laptop using:
scp someFile USER@192.168.178.32:/home/USER/put/it/some/where/oh/damn/you/here
I want to be able to autocomplete the remote path by hitting tab.
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.Sign up to join this community
Make sure that you've turned on the fancy autocompletion. On many distributions, this means your
~/.bashrc needs to contain
You'll need to have passwordless authentication set up, i.e. with a key that's already loaded in
Establishing an SSH connection is slow, so you can considerably speed up completions by establishing a connection once and for all and using that connection thereafter. The relatively complicated way to do that is to open a master SSH connection with
ssh -N -M target-host after setting up master-slave connections in
~/.ssh/config; see Multiple ssh sessions in single command for instructions (you need the
The simple method is to mount the remote filesystem over SSHFS and use
cp with normal shell completion.
mkdir ~/remote sshfs USER@192.168.178.32:/home/USER ~/remote cp -p someFile ~/remote/put/it/some/where/oh/damn/you/here
All I needed to do was to add my public key to the remote machine:
cat ~/.ssh/id_rsa.pub | ssh USER@192.168.178.32 "cat - >> ~/.ssh/authorized_keys"
You could switch to lftp instead of using scp. It gives you a nice consistent interface for file transfer over ftp, sftp and ssh including the autocomplete you are looking for and more (i.e. wildcards).
opens a connection over ssh like you do above with scp. Many machines support sftp:// too which is even nicer in my experience.
Like @Giles has said, make sure you have setup auto complete properly have have you ssh key on the machine.
Adding this configuration to my
~/.ssh/config made a huge difference in the speed.
Host * ControlMaster auto ControlPath ~/.ssh/master-socket/%r@%h:%p ControlPersist 10s
This will create a master connection for each host.
The 10s persist will gives you some time to see the directory before the connection is automatically closed.
Without the persist you will have to recreate a connection and it will slow your tab completion down.
~$ scp mymachine:~/pa TAB
path/ palace/ pandas/ porn/
~$ scp mymachine:~/path/to TAB
~$ scp mymachine:~/path/to/file TAB