HXCOPY(1) HTML-XML-utils HXCOPY(1)NAME
hxcopy - copy an HTML file and update its relative links
SYNOPSIS
hxcopy [ -i old-URL ] [ -o new-URL ] [ -s ] [ -v ] [ file-or-URL [
file-or-URL ] ]
DESCRIPTION
The hxcopy command copies its first argument to its second argument,
while updating relative links. The input is assumed to be HTML or XHTML
and may be slightly reformatted in the process.
If the second argument is omitted, hxcopy writes to standard output. In
this case the option -o is required. If the first argument is also
omitted, hxcopy reads from standard input. In this case the option -i
is required.
OPTIONS
The following options are supported:
-i old-URL
For the purposes of updating relative links, act as if old-
URL is the location from which the input is copied. If this
option is omitted, the actual location of the first argument
is used for calculating relative links.
-o new-URL
For the purposed of updating relative links, act as if new-
URL is the location to which the input is copied. If this
option is omitted, the actual location of the second argument
is used for calculating relative links.
-s Also replace links to self. This effects the treatment of
empty URLs, i.e., links to the document itself that do not
explicitly name the document. Without -s, implicit links to
the document itself (href=""), to a fragment of the document
itself (href="#foo") or to a query over the document itself
(href="?query") are not changed and will thus refer to (a
fragment of) the new document. With -s, these links are
rewritten to refer to (a fragment of) the old document
instead.
-v Print the version number and exit immediately.
ENVIRONMENT
To use a proxy to retrieve remote files, set the environment variables
http_proxy and ftp_proxy. E.g., http_proxy="http://localhost:8080/"
BUGS
Unlike the last argument of cp(1), the last argument of hxcopy must be
a file, not a directory.
The second argument must be a local file. Writing to a URL is not yet
implemented. To work around this, replace hxcopy file.html http://exam‐
ple.org/file.html by hxcopy -o http://example.org/file.html file.html
tmp.html and then upload tmp.html to the given URL with some other com‐
mand, such as curl(1). The first argument, however, may be a URL.
hxcopy will download the given file. (Currently only HTTP is sup‐
ported.)
EXAMPLE
Assume the HTML file foo.html contains a relative link to
"../bar.html". Here are some examples of commands:
hxcopy foo.html bar/foo.html
The file foo.html is copied to ../bar/foo.html and the relative
link to "../bar.html" becomes "../../bar.html".
hxcopy foo.html ../foo.html
The file foo.html is copied to ../foo.html and the relative link
to "../bar.html" is rewritten as "bar.html".
hxcopy -i http://my.org/dir1/foo.html -o http://my.org/foo.html
file1.html file2.html
The file file1.html is copied to file2.html and the relative
link to "../bar.html" is rewritten as "bar.html". A command like
this may be useful to update files that are later uploaded to a
server.
SEE ALSOcp(1), curl(1), hxwls(1)6.x 9 Dec 2008 HXCOPY(1)