Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
FETCH(1)		  BSD General Commands Manual		      FETCH(1)

     fetch -- retrieve a file by Uniform Resource Locator

     fetch [-146AFMPRUadlmnpqrsv] [-B bytes] [-S bytes]	[-T seconds] [-N file]
	   [-o file] [-w seconds] [-h host] [-c	dir] [-f file] [URL ...]

     The fetch utility provides	a command-line interface to the	fetch(3) li-
     brary.  Its purpose is to retrieve	the file(s) pointed to by the URL(s)
     on	the command line.

     The following options are available:

     -1		 Stop and return exit code 0 at	the first successfully re-
		 trieved file.

     -4		 Forces	fetch to use IPv4 addresses only.

     -6		 Forces	fetch to use IPv6 addresses only.

     -A		 Do not	automatically follow ``temporary'' (302) redirects.
		 Some broken Web sites will return a redirect instead of a
		 not-found error when the requested object does	not exist.

     -a		 Automatically retry the transfer upon soft failures.

     -B	bytes	 Specify the read buffer size in bytes.	 The default is	4096
		 bytes.	 Attempts to set a buffer size lower than this will be
		 silently ignored.  The	number of reads	actually performed is
		 reported at verbosity level two or higher (see	the -v flag).

     -c	dir	 The file to retrieve is in directory dir on the remote	host.
		 This option is	deprecated and is provided for backward	com-
		 patibility only.

     -d		 Use a direct connection even if a proxy is configured.

     -F		 In combination	with the -r flag, forces a restart even	if the
		 local and remote files	have different modification times.
		 Implies -R.

     -f	file	 The file to retrieve is named file on the remote host.	 This
		 option	is deprecated and is provided for backward compatibil-
		 ity only.

     -h	host	 The file to retrieve is located on the	host host.  This op-
		 tion is deprecated and	is provided for	backward compatibility

     -l		 If the	target is a file-scheme	URL, make a symbolic link to
		 the target rather than	trying to copy it.


     -m		 Mirror	mode: if the file already exists locally and has the
		 same size and modification time as the	remote file, it	will
		 not be	fetched.  Note that the	-m and -r flags	are mutually

     -N	file	 Use file instead of ~/.netrc to look up login names and pass-
		 words for FTP sites.  See ftp(1) for a	description of the
		 file format.  This feature is experimental.

     -n		 Do not	preserve the modification time of the transferred

     -o	file	 Set the output	file name to file.  By default,	a ``pathname''
		 is extracted from the specified URI, and its basename is used
		 as the	name of	the output file.  A file argument of `-' indi-
		 cates that results are	to be directed to the standard output.
		 If the	file argument is a directory, fetched file(s) will be
		 placed	within the directory, with name(s) selected as in the
		 default behaviour.


     -p		 Use passive FTP.  This	is useful if you are behind a firewall
		 which blocks incoming connections.  Try this flag if fetch
		 seems to hang when retrieving FTP URLs.

     -q		 Quiet mode.

     -R		 The output files are precious,	and should not be deleted un-
		 der any circumstances,	even if	the transfer failed or was in-

     -r		 Restart a previously interrupted transfer.  Note that the -m
		 and -r	flags are mutually exclusive.

     -S	bytes	 Require the file size reported	by the server to match the
		 specified value.  If it does not, a message is	printed	and
		 the file is not fetched.  If the server does not support re-
		 porting file sizes, this option is ignored and	the file is
		 fetched unconditionally.

     -s		 Print the size	in bytes of each requested file, without
		 fetching it.

     -T	seconds	 Set timeout value to seconds.	Overrides the environment
		 variables FTP_TIMEOUT for FTP transfers or HTTP_TIMEOUT for
		 HTTP transfers	if set.

     -U		 When using passive FTP, allocate the port for the data	con-
		 nection from the low (default)	port range.  See ip(4) for de-
		 tails on how to specify which port range this corresponds to.

     -v		 Increase verbosity level.

     -w	seconds	 When the -a flag is specified,	wait this many seconds between
		 successive retries.

     If	fetch receives a SIGINFO signal	(see the status	argument for stty(1)),
     the current transfer rate statistics will be written to the standard er-
     ror output, in the	same format as the standard completion message.

     FTP_TIMEOUT   maximum time, in seconds, to	wait before aborting an	FTP

     HTTP_TIMEOUT  maximum time, in seconds, to	wait before aborting an	HTTP

     All environment variables mentioned in the	documentation for the fetch(3)
     library are supported.  A number of these are quite important to the
     proper operation of fetch;	you are	strongly encouraged to read fetch(3)
     as	well.

     The fetch command returns zero on success,	or one on failure.  If multi-
     ple URLs are listed on the	command	line, fetch will attempt to retrieve
     them each of them in turn,	and return zero	only if	they were all success-
     fully retrieved.


     The fetch command appeared	in FreeBSD 2.1.5.  This	implementation first
     appeared in FreeBSD 4.1.

     The original implementation of fetch was done by Jean-Marc	Zucconi
     <>.	 It was	extensively re-worked for FreeBSD 2.2 by
     Garrett Wollman <>, and	later completely rewritten to
     use the fetch(3) library by Dag-Erling Smorgrav <>.

     The -b and	-t options are no longer supported and will generate warnings.
     They were workarounds for bugs in other OSes which	this implementation
     does not trigger.

     One cannot	both use the -h, -c and	-f options and specify URLs on the
     command line.

BSD				March 11, 2003				   BSD


Want to link to this manual page? Use this URL:

home | help