I'm just learning to use sftp, and I want to copy a directory from the remote computer to my local computer. If I try
it gives me this error:
Cannot download non-regular file: /home/mpirocch/Documents
get -R doesn't work, either.
scp -r [email protected]:/home/mpirocch/Documents Documents
mget instead of
mget will work if you are inside the directory you want to copy; if you do something like this:
sftp> cd dir_to_get sftp> mget *
it will get all the files in that directory. However, it will not recursively get the contents of any subdirectories.
Don't use the sftp program directly if you can find something better. For Linux, many file managers (at least Nautilus and Dolphin, the GNOME and KDE ones) support sftp natively, and there's always sshfs. For windows, there's WinSCP, and probably others. The point of all of these is to let you access files over sftp as if they were on a regular filesytem, so you don't have to care that you're accessing them over sftp.
lftp sftp://[email protected]
Then use the
mirror command to recursively upload, like this:
Or to recursively download just:
You have to
cd into the directories you want to mirror. Works magically!
-r (recursive) flag:
get -r *
I have Java dist folder in remote server, where i have following tree:
- dist --- Audio.jar --- README --- lib ----- lib.jar
Goal is: I want to use SFTP? And put them in /tmp/<>
Step 1. sftp [email protected]
Step 2. cd /var/tmp
Step 2. lmkdir /tmp/dist; lmkdir /tmp/dist/lib
Step 3. lcd /tmp/dist
Step 4. mget *
Step 5. lcd /tmp/dist/lib
Step 6. mget *
Step 7. finally i have my goal
$ ls Audio.jar lib README.TXT
get -r [directory]
[directory] and everything under it, where
r stands for recursive. I found this just by typing
scp -rp [email protected]:/path/to/dir dir
The above will preserve times and modes of the original files and subdirectories. This is especially useful for the retrieval of backups.
well this little guide should help, mirror a remote server to local folder with lftp
lftp sftp://user:[email protected]:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'
sftp://= uses SFTP protocol
mirror= mirror mode
verbose= shows the files being downloaded
use-pget-n= number of segments, realy useful to speed up big files
parallel= downloads multiplier files at the same time
if you want to download files in parallel switch out
hope this helps anyone needing to mirror a remote folder to a local folder