ARC(1L) LOCAL COMMANDS ARC(1L) NAME arc - pc archive utility SYNOPSIS arc a|m|u|f|d|x|e|r|p|l|v|t|c [ biswnoq ] [ g_p_a_s_s_w_o_r_d ] _a_r_c_h_i_v_e [ _f_i_l_e_n_a_m_e ...] DESCRIPTION _A_r_c is a general archive and file compression utility, used to maintain a compressed archive of files. An _a_r_c_h_i_v_e is a single file that combines many files, reducing storage space and allowing multiple files to be handled as one. _A_r_c uses one of several compression methods for each file within the _a_r_c_h_i_v_e, based on whichever method yields the smallest result. INSTRUCTIONS Execute _a_r_c with no arguments for fairly verbose, usable instructions. COMMAND SWITCHES a add files to archive. Copies the indicated files to the archive. m move files to archive. Same as 'a' switch except that the files are deleted from the directory as they are moved to the archive. u 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. f freshen files in archive. Same as 'u' except that new files will not be added. d delete files in archive. The named files are removed from the archive. x,e extract files from archive. The named files are extracted from the archive and created in the current directory in an uncompressed state. r run one file with arguments from archive. Any program may be executed directly from the archive. The parame- ters given after the program name are passed to the pro- gram without modification. p 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. Howard Chu@UM Last change: 12 Jun 1988 1 ARC(1L) LOCAL COMMANDS ARC(1L) l 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. v verbose listing of files in archive. Complete informa- tion listing of files contained in an archive. Displays the filename, original length, storage method, storage factor (% savings), compressed size, date, time, and CRC. t test archive integrity. Computes CRC values for each member of the archive and compares against the previously saved value. c 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. OPTIONS b 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. i 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 deal- ing with text files much nicer, though the 'tr' command can also be used. ('\r' in makefiles and C source code is such a nuisance...) s 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. w 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. n suppress notes and comments. This switch will keep use- ful notes from being displayed which is the default. Most notes indicate what stage of compression is being run (analyze, compaction, storage). o overwrite existing files when extracting. This switch will make existing files silently get overwritten, instead of asking for confirmation, which is the default. Howard Chu@UM Last change: 12 Jun 1988 2 ARC(1L) LOCAL COMMANDS ARC(1L) q force Squash compression method. This switch causes the Squash compression method to be used, instead of Crunch, which is the default. g 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. PROGRAMMING NOTES _A_r_c 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 charac- ters 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. _A_r_c will look for environment variables named _A_R_C_T_E_M_P or _T_M_P_D_I_R, which, if present, indicates the pathname where tem- porary files should be created. This is typically the loca- tion of a RAMdisk on a microcomputer, "/tmp/" or left unset. See the included documentation file for more details. HISTORY _A_r_c has been in use in the CP/M and MSDOS world for many years. Thom Henderson developed the original version, but Howard Chu@UM Last change: 12 Jun 1988 3 ARC(1L) LOCAL COMMANDS ARC(1L) it is important to note that _a_r_c 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. BUGS _A_r_c behaves just like the PC version of the program; all functions of the "usage" display are working. Full compati- bility with PC ARC files is maintained, the price for which is that _a_r_c 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 _a_r_cing them. There shouldn't be any problems, (hah!) but if you find any, please send them to me at: hyc@umix.cc.umich.edu {rutgers, uunet}!umix!hyc AUTHORS 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. Modi- fied to support Squashing by Dan Lanciani (ddl@harvard.edu) Ported from MSDOS by Howard Chu (umix!hyc), with help from John Gilmore (hoptoad!gnu), James Turner (daisy!turner) and others. Howard Chu@UM Last change: 12 Jun 1988 4