NAME¶
hxcopy - copy an HTML file and update its relative links
SYNOPSIS¶
hxcopy [
-i old-URL ] [
-o new-URL ] [
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.
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://example.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 command, such as
curl(1). The first argument, however, may be a
URL.
hxcopy will download the given file. (Currently only HTTP is
supported.)
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 ALSO¶
cp(1),
curl(1),
hxwls(1)