this software was written a long time ago and may not compile
immediately. contact me if you need help. it can be made to run
on at least openbsd & linux.
samblah is a command-line smb/cifs file transfer client, its
functionality resembles that of smbclient(1) which is part of the
samba project. samblah provides certain features that smbclient(1)
lacks, such as command-line completion, convenient globbing and
resuming of transfers.
- command-line completion allows for completion of commands and,
depending on the command, local or remote files.
- extensive and completely configurable command-line editing is
provided by the readline library, see readline(3) for information
on how to configure its behaviour.
- globbing is provided for both local and remote files, i.e. patterns
containing `*', `?' or `[...]' are replaced with the files they
match, matching is done by fnmatch(3). note that globbing is done
in a generic manner, not inside each internal command but directly
after parsing the command-line, this causes it to work as expected
for all commands.
- other interesting features include recursive file transfers and
listings, resuming of transfers, a nice quoting mechanism and more.
while transferring, the progress bar, current size and
estimated time of arrival are updated once every second.
samblah can retrieve directories recursively.
resuming a transfer
when a the destination file of a transfer already exists,
the user is asked whether to overwrite, resume, or skip the
as can be seen in the screenshot, completion is quite useful
you can use the wildcards `*', `?' and `[characters]' to
match file names.
samblah needs libreadline and libsmbclient. chances are that
libreadline is already installed on your system, if not, you can
find it at <http://cnswww.cns.cwru.edu/~chet/readline/rltop.html>.
as libreadline is pretty mainstream, installing it should not cause
libsmbclient is a bit harder. It comes as part of samba,
<http://www.samba.org/>. at the moment of writing, samba-2.2.8 is
the latest release. the problem is that the Makefile does not build
and install libsmbclient correctly. see if your operating
system/distribution has a libsmbclient package, that will be the
easiest. otherwise, try modifying the Makefile of samba to suit
when you have libreadline and libsmbclient, it is time to compile
samblah. edit the Makefile and add the location of the libreadline
and libsmbclient header files to the include path. then execute
`make'. If this succeeds, there will be a binary `samblah' and a
formatted manual page `samblah.0'. to install samblah, copy the
binary to somewhere in your path (you might want to strip(1) it
first) and copy the manual page (either samblah.1, the raw manual
page, or samblah.0, the formatted manual page, possibly compressed)
to where your systems keeps manual pages. note that there is no
`install' target since there is no way of determining where to
install the files.
note that this software is unmaintained, so don't expect many
updates. still, changes can be found here:
# author & licence
this code was written by Mechiel Lukkien <firstname.lastname@example.org> or
all files in samblah distributions are in the public domain. this
means you can do anything with it you want.
helpful people who have provided feedback/bug reports/bug fixes and
suggestions for improvements: Ferdi Meijerink, Berteun Damman.