fcp.pl 0.3 review

by rbytes.net on

fcp.pl is a powerful ftp client in early stage of development

License: GPL (GNU General Public License)
File size: 26K
Developer: Peter Surda
0 stars award from rbytes.net

fcp.pl is a powerful ftp client in early stage of development. It supports auto-bookmarks, auto-reconnect, resume, directory recursion, regexp ignore list, concurrent connection to more servers, intelligent timeouts, filename and command completion, directory caching, proxy servers, speed limiting, symlinks, queues, skins and lots more. For now, the target is developers who want to help, and support to other clients is limited.


1. install following perl modules: Date::Manip, Curses, Term::ReadLine::Gnu. If
you have RedHat, you can find these in the DMA/CPAN (7.x) or simply cpan (6.x)
2. copy Fcp.pm into /usr/lib/perl5/site_perl or wherever you prefer it
3. copy fcp.pl into /usr/local/bin or wherever you prefer it

Interactive mode:

commands (examples):
open ftp://user:pass@hostname:port/path
set resume 1
lcd /wherever
get whatever

command list:
get filename
put filename
mget glob
mput glob
set variable [value]
unset variable
dir or ls or list [glob]
ldir or lls or llist [glob]
purge -> clears cache
rm -> delete remote file
lrm -> delete local file
lmkdir -> create local directory
mkdir -> create remote directory
lcd path -> change local path
cd path -> change remote path
lpwd -> print local working directory
pwd -> print remote working directory
abor -> abort current operation
open url_or_bookmark_or_# -> open a ftp site
load url_or_bookmark -> same as open, only doesn't connect
close -> close current connection
enqueue -> put the following command to queue
queue -> list queue
clr_queue -> clear queue
go -> process queue
curses -> turn on curses interface

"set variable" is equivalent to "set variable 1"
"unset variable" is equivalent to "set variable 0"

Commands from interactive mode are saved into a history file. Upon quit, queues
and bookmarks are saved, unless "immutable" is set.


timeout - in seconds for tcp connection, data transfer, and sleep between
maxcount - stop trying to connect after this many failures, if the server tells
you that it's busy or user limit was reached
recur - recursively traverse subdirectories
resume - autoresume
ignore - regexp that tells which files and directories ignore in mget/mput
name - bookmark name. Defaults to hostname
size - always use ftp SIZE command to find out file size
mdtm - always use ftp MDTM command to find out file modification date/time
(these last 2 variables cause more time spent on directory listings but
sometimes provide more accurate results). SIZE and MDTM are used in cases it
makes sense regardless of settings.
speed - limit speed of downloads and uploads. In bytes/s. Also understands
stuff like 10k or 2m
timeformat - display date/time in this format. For argument meanings see man
dircache - keep directory listing this many seconds. cache is also deleted
manually after the "purge" command
hostname, port, user, pass - obvious
passive - use passive data connections, when 0, use active.
human - display size as "168M" instead of "172492244"
immutable - don't update bookmark on close/quit
symlink - treat symlink as symlinks. If 0, treat them as files or directories.
If you try to download a symlink, it either creates a symlink locally (when
set to 1) or downloads the file/makes a directory (when set to 0).
quiet - write less (only errors and transfer progress)
skin - yes, fcp.pl has skins. Curently 3: 'wget', 'ncftp' and 'curses'
status - connection status.
proxy - hostname:port for a ftp proxy server, "USER user@host:port"-proxy style

Curses interface:
You can't open new sites with curses interface yet, so you have to
open whatever
first. Then simply type "curses" and the curses interface will come up.
l -> page down
h -> page up
k -> one up
j -> one down
d -> transfer (download or upload)
t or space -> tag (currently has no effect except files in the listing change
color :-))
enter/return -> change directory
r -> reread directory listing
Tab -> switch between remote, local and queue
- + * -> think Midnight Commander/Norton Commander/Dos Navigator/Far
q -> enqueue transferring current file
g -> process queue
c -> clear queue
x -> close curses interface

create a file containing ftp command just like you'd type them interactively.
Then you can run
fcp.pl file_with_commands
and they will be processed. As far as I remember putting QUIT on the last line
isn't necessary.

If you have a question, ask over email.


What's New in This Release:
forceresume option
radical speed improvements (copying at 5.5MB/s eats about 15% CPU on Duron 900)
symlink handling fixed
curses directory listing bugfix
proxy port fix
upload and recursive upload fix

fcp.pl 0.3 keywords