

    SFTP version 0.5 by Peter Strand (peter@fisk.helsingborg.se)


First I'll want to make one thing clear, this program contains bugs!
And lots of them :)

But if nothing unexpected happens everything should work, it's the error 
handling (the boring part of programming) that needs some work. But I'm 
trying to eliminate the bugs (and introducing new interesting ones) when 
I've got time and this will hopefully be a useful program one day :)
In the meantime would I be very happy if you send me bug reports and 
describe what happend and under which circumstances (I know that the 
program can crash, but I have to now when it crashes to be able to do 
something about it). My email-address is peter@fisk.helsingborg.se

I've developed this under Linux but it should work under most unixes, 
if you have problem then tell me and I'll see what I can do about it.
It also works (sort of) under windows (95 or NT) with the cygnus gcc port, 
you can get it at www.cygnus.com/gnu-win32/
(background downloading doesn't work and it may crash unexpectedly... 
I'm working on it...)


I'm constantly working on this program, there's something new almost 
every week, so get the latest version If you happen to like the concept!
Look in the TODO file to see some of my future plans. But if you have an 
idea you think is great then don't hesitate, mail me! 
(I'll credit you if you want and if your idea is good)


I've tried to make this program as fast as possible to use:

There are shortcuts for all commands:
ie:

sftp> g file   
is the same as:
sftp> get file

You'll get a list of all commands with the ? key (or the "keys" command)


The listed files are numbered for faster referencing:
example:

sftp> l
#1	bin		#2	lib
#3	etc		#4	pub
#5	welcome.msg
sftp> g #5
150 Opening BINARY mode data connection for welcome.msg (346 bytes).
       346 bytes recieved (100%)
226 Transfer complete.
sftp> c #4
250 CWD command successful.
sftp> 

You can get many files at the same time, and you can mix 
numbers and real filenames:

example:

sftp> g #1-5 #7,9,11 #56 #87
sftp> g linux-2.1.52.tar.gz #1 patch-2.1.52.gz 


You can view files with the v (view) command, it uses you're favourite 
pager (more, less, ... or whatever) by examine your $PAGER variable.


You can mark files and retrieve them in the end of you're session. 
This is good if you're on a slow link and don't want to wait for every file. 

example:

sftp> d
150 Opening BINARY mode data connection for /bin/ls.
        total 8326
#1      dr-xr-xr-x   4 root     root         1024 Sep  6 19:53 .
#2      dr-xr-xr-x   6 root     root         1024 Jul 24 19:47 ..
#3      drwxr-x-wx   2 root     root         1024 Sep  6 19:53 incoming
#4      -rwxr-xr-x   1 root     root      8485996 Sep  6 19:51 linux-2.1.50.tar.gz
#5      drwxr-xr-x   2 root     root         1024 Sep  6 19:53 patch
sftp> m #4
sftp> c #5
250 CWD command successful.
sftp> d
150 Opening BINARY mode data connection for /bin/ls.
        total 824
#1      drwxr-xr-x   2 root     root         1024 Sep  6 19:53 .
#2      dr-xr-xr-x   4 root     root         1024 Sep  6 19:53 ..
#3      -rwxr-xr-x   1 root     root       390688 Sep  6 19:52 patch-2.1.51.gz
#4      -rwxr-xr-x   1 root     root        87491 Sep  6 19:51 patch-2.1.52.gz
#5      -rwxr-xr-x   1 root     root       354787 Sep  6 19:51 patch-2.1.53.gz
sftp> m #3-5
sftp> L
/pub/linux-2.1.50.tar.gz
/pub/patch/patch-2.1.51.gz
/pub/patch/patch-2.1.52.gz
/pub/patch/patch-2.1.53.gz
sftp> G
 
The 'G' gets all you're marked files.  


With the set command can you alter some global options, these can also 
be altered "locally" by options to the commands

for example:

sftp> set r
sftp> set m
sftp> get linux/kernel/v2.1

is (almost, the options don't change globally) the same as:

sftp> get -rm linux/kernel/v2.1


You can use the -n option to retry the connection (for busy ftp-sites)

sftp> open -a -n 100 ftp-host
This will try to connect 100 times in a row...

sftp> open -a -n 100:30 ftp-host
This is better, it sleeps for 30 seconds between the tries...


And, finally, background downloading:

sftp> get -b linux-2.1.51.tar.gz
sftp> 

this forks of a child which loggs in to the server and gets the wanted file..
If you're on a slow machine or a slow line then don't try the following :)
sftp> get -b #1-200


Well... there's more... but I don't like writing docs...
If you want to find out more about the program... read the source :)
(or ask me by email...)


