arc (1) - Linux Manuals

arc: pc archive utility


arc - pc archive utility


arc a|m|u|f|d|x|e|r|p|l|v|t|c [ biswnoq ] [ gpassword ] archive [ filename ...]


Arc is a general archive and file compression utility, used to maintain a compressed archive of files. An archive is a single file that combines many files, reducing storage space and allowing multiple files to be handled as one. Arc uses one of several compression methods for each file within the archive, based on whichever method yields the smallest result.


Execute arc with no arguments for fairly verbose, usable instructions.


add files to archive. Copies the indicated files to the archive.
move files to archive. Same as 'a' switch except that the files are deleted from the directory as they are moved to the archive.
update files in archive. This switch will replace archived files when the named file is newer than the archived copy. New files will be added automatically.
freshen files in archive. Same as 'u' except that new files will not be added.
delete files in archive. The named files are removed from the archive.
extract files from archive. The named files are extracted from the archive and created in the current directory in an uncompressed state.
run one file with arguments from archive. Any program may be executed directly from the archive. The parameters given after the program name are passed to the program without modification.
copy files from archive to standard output. Useful with I/O redirection. A form-feed is appended after each file, to ease use with printers.
list files in archive. Limited information listing of files contained in an archive. Displays the filename, original length, and date last modified. If the 'n' option (see below) is used, only the filename is displayed.
verbose listing of files in archive. Complete information listing of files contained in an archive. Displays the filename, original length, storage method, storage factor (% savings), compressed size, date, time, and CRC.
test archive integrity. Computes CRC values for each member of the archive and compares against the previously saved value.
convert entry to new packing method. Convert files stored with older methods to newer methods that are more efficient. Also useful for files previously archived with the 's' option.


retain backup copy of archive. Keep the original archive file and rename to .BAK. This switch may be used with the following commands: a, m, u, f, d, c.
suppress image mode. This switch causes files to be treated as text files, and will translate their end-of-line sequence. (Unix's '\n' vs. '\r\n' used on many other systems.) The default is to perform no translation when compressing or extracting files. This option makes dealing with text files much nicer, though the 'tr' command can also be used. ('\r' in makefiles and C source code is such a nuisance...)
suppress compression. This forces new files to be saved using Method 2 (no compression). This switch may be used with the following commands: a, m, u, f, c.
suppress warning messages. This switch will keep warning messages from being displayed which is the default. Most warnings concern the deletion or existence of files with the same name.
suppress notes and comments. This switch will keep useful notes from being displayed which is the default. Most notes indicate what stage of compression is being run (analyze, compaction, storage).
overwrite existing files when extracting. This switch will make existing files silently get overwritten, instead of asking for confirmation, which is the default.
force Squash compression method. This switch causes the Squash compression method to be used, instead of Crunch, which is the default.
encrypt/decrypt archive entry. This is used to encode files so that others may not read them. BE CAREFUL! This must be the last parameter in the switches because everything following is part of the password.


Arc Version 2 differs from version 1 in that archive entries are automatically compressed when they are added to the archive, making a separate compression step unecessary. The nature of the compression is indicated by the header version number placed in each archive entry, as follows:
         1 = Old style, no compression
         2 = New style, no compression
         3 = Compression of repeated characters only
         4 = Compression of repeated characters plus Huffman SQueezing
         5 = Lempel-Zev packing of repeated strings (old style)
         6 = Lempel-Zev packing of repeated strings (new style)
         7 = Lempel-Zev Williams packing with improved hash function
         8 = Dynamic Lempel-Zev packing with adaptive reset
         9 = Squashing

Type 5, Lempel-Zev packing, was added as of version 4.0

Type 6 is Lempel-Zev packing where runs of repeated characters have been collapsed, and was added as of version 4.1

Type 7 is a variation of Lempel-Zev using a different hash function which yields speed improvements of 20-25%, and was added as of version 4.6

Type 8 is a different implementation of Lempel-Zev, using a variable code size and an adaptive block reset, and was added as of version 5.0

Type 9 is another variation of Lempel-Zev, using a larger hash table. This method was developed by Phil Katz, and is not supported by the "official" ARC programs.

Arc will look for environment variables named ARCTEMP or TMPDIR, which, if present, indicates the pathname where temporary files should be created. This is typically the location of a RAMdisk on a microcomputer, "/tmp/" or left unset.

See the included documentation file for more details.


Arc has been in use in the CP/M and MSDOS world for many years. Thom Henderson developed the original version, but it is important to note that arc is based on the file compression theories developed by Huffman, Welch, Knott, Knuth, and many other scientists. This implementation is based on version 5.21 of the MSDOS program.


Arc behaves just like the PC version of the program; all functions of the "usage" display are working. Full compatibility with PC ARC files is maintained, the price for which is that arc doesn't like long filenames, and can only archive files with names of up to 12 characters. It will *sometimes* do The Right Thing with them, but I suggest you put long-winded filenames in a "shar" before arcing them.

There shouldn't be any problems, (hah!) but if you find any, please send them to me at:

        hyc [at]


Original MSDOS program by Thom Henderson
COPYRIGHT(C) 1985-87 by System Enhancement Associates; ALL RIGHTS RESERVED

Original Lempel-Zev code derived from compress 4.0. Modified to support Squashing by Dan Lanciani (ddl [at] Ported from MSDOS by Howard Chu, with help from John Gilmore (hoptoad!gnu), James Turner (daisy!turner) and others.