---
name: "archive"
section: "8"
platform: "linux"
package: "inn"
version: "1:1.7.2q-52"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/archive"
---

# archive(8)

Usenet article archiver

## NAME

archive - Usenet article archiver

## SYNOPSIS

**archive** \[ **-a** *archive* \] \[ **-f** \] \[ **-i** *index* \] \[ **-m** \] \[ **-r** \] \[ *input* \]

## DESCRIPTION

*Archive* makes copies of files specified on its standard input. It is normally run either as a channel feed under [*innd*(8)](/innd/8.md), or by a script before [*expire*(8)](/expire/8.md) is run.

*Archive* reads the named *input* file, or standard input if no file is given. The input is taken as a set of lines. Blank lines and lines starting with a number sign (\`\`#'') are ignored. All other lines should specify the name of a file to archive. If a filename is not an absolute pathname, it is taken to be relative to */var/spool/news*.

Files are copied to a directory within the archive directory, */var/spool/news/news.archive*. The default is to create a hierarchy that mimics the input files; intermediate directories will be created as needed. For example, the input file *comp/sources/unix/2211* (article 2211 in the newsgroup comp.sources.unix) will be copied to */var/spool/news/news.archive/comp/sources/unix/2211*.

## OPTIONS

- **-a archive**

  If the \`\`-a'' flag is used then its argument specifies the directory to archive in instead of the default.

- **-f**

  If the \`\`-f'' flag is used, then all directory names will be flattened out, replacing the slashes with periods. In this case, the file would be copied to */var/spool/news/news.archive/comp.sources.unix/2211*.

- **-i**

  If the \`\`-i'' flag is used, then *archive* will append one line to the specified *index* file for each article that it copies. This line will contain the destination name and the Message-ID and Subject headers.

- **-m**

  Files are copied by making a link. If that fails a new file is created. If the \`\`-m'' flag is used, then the file will be copied to the destination, and the input file will be replaced with a symbolic link pointing to the new file.

- **-r**

  By default, *archive* sets its standard error to */var/log/news/errlog*. To suppress this redirection, use the \`\`-r'' flag.

## EXIT STATUS

If the input is exhausted, *archive* will exit with a zero status. If an I/O error occures, it will try to spool its input, copying it to a file. If there was no input filename, the standard input will be copied to */var/spool/news/out.going/archive* and the program will exit. If an input filename was given, a temporary file named *input*.bch (if *input* is an absolute pathname) or */var/spool/news/out.going/*input.bch (if the filename does not begin with a slash) is created. Once the input is copied, *archive* will try to rename this temporary file to be the name of the input file, and then exit.

## EXAMPLES

A typical [*newsfeeds*(5)](/newsfeeds/5.md) entry to archive most source newsgroups is as follows:

```
source-archive\
	:!*,*sources*,!*wanted*,!*.d\
	:Tc,Wn\
	:/usr/lib/news/bin/archive -f -i \
	    /usr/spool/news/news.archive/INDEX
```

## HISTORY

Written by Rich $alz \<rsalz@uunet.uu.net\> for InterNetNews. This is revision 1.14, dated 1996/10/29.

## SEE ALSO

[newsfeeds(5)](/newsfeeds/5.md).
