snarf(1) snarf(1)
17 Jun 2000
NAME
snarf - Simple Non-interactive All-purpose Resource Fetcher
SYNOPSIS
snarf [-avqprzm] URL [outfile] ...
DESCRIPTION
Retrieves data from a variety of protocols, namely http, ftp, and
gopher.
USAGE
snarf is invoked with any number of URLs and outfiles. If an outfile
is not specified, snarf preserves the remote file name when saving.
For example, snarf http://foo.bar.com/images/face.gif will retrieve
the file ``face.gif'' to the local system. In the event that there is
no filename (the url ends in a slash), the data is retrieved and
stored in the file index.html for http URLs, ftpindex.txt for ftp
URLs, or gopherindex.txt for gopher URLs.
Using a dash, "-", as the outfile causes snarf to send its output to
stdout rather than a file.
To log in to an ftp server or website that requires a username and
password, use the syntax http://username: HREF=mailto:password@site.com>password@site.com/. If you
omit the password, you will be prompted for it.
Snarf has a built-in option to download the latest version of itself;
simply run snarf LATEST.
OPTIONS
-a Causes snarf to use "active" ftp. By default, snarf uses passive
ftp, and, if the server does not support it, falls back to active
ftp. Using the -a option will avoid the initial passive attempt.
-r Resumes an interrupted ftp or http transfer by checking if there
is a local file with the same name as the remote file, and
starting the transfer at the end of the local file and continuing
until finished. This option only works with HTTP servers that
understand HTTP/1.1 and ftp servers that support the REST
command. snarf uses this option automatically if the outfile
already exists.
-n Don't resume; ignore the outfile if it exists and re-transfer it
in its entirety.
-q Don't print progress bars.
- 1 - Formatted: October 24, 2025
snarf(1) snarf(1)
17 Jun 2000
-p Forces printing of progress bars. Snarf has a compile-time option
for whether progress bars print by default or not. The -p option
overrides the -q option. In addition, if progress bars are
enabled by default, snarf suppresses them when standard output is
not a terminal. Using -p will override this behavior.
-v Prints all messages that come from the server to stderr.
-z Send a user-agent string similar to what Netscape Navigator 4.0
uses.
-m Send a user-agent string similar to what Microsoft Internet
Explorer uses.
Each option only affects the URL that immediately follows it. To have
an option affect all URLs that follow it, use an uppercase letter for
the option, e.g. -Q instead of -q.
ENVIRONMENT
Snarf checks several environment variables when deciding what to use
for a proxy. It checks a service-specific variable first, then
SNARF_PROXY, then PROXY.
The service-specific variables are HTTP_PROXY, FTP_PROXY, and
GOPHER_PROXY.
Snarf also checks the SNARF_HTTP_USER_AGENT environment variable and
will use it when reporting its user-agent string to an HTTP server. In
the same spirit, it also uses the SNARF_HTTP_REFERER environment
variable to spoof a Referer to the web server.
BUGS
Bugs? What bugs? If you find 'em, report 'em.
AUTHOR
Copyright (C) 2000 Zachary Beane (xach@xach.com)
- 2 - Formatted: October 24, 2025