A file archiver is utility software that combines files into a single archive file or in less common cases, multiple files. A relatively simple implementation might include the content of each file plus its name. A more advanced implementation stores additional metadata, such as the timestamps, file attributes and access control information. An archiver might compress input file content to reduce the size of the resulting archive.
In addition to creating an archive, the same utility may also support extracting the contained file content to recreate the original files.
In the early days of computing, Multics provided the command a basic archiver without compression that descended from the CTSS command of the same name. Multics also provided a magnetic tape archiver command, , which was perhaps the forerunner of the Unix command .
As the Unix archive tools ar, tar, and cpio do not provide compression, other tools, such as gzip, bzip2, or xz, are used to compress an archive file after it is created and to decompress before extracting.
Not only does separating archiving from compressing follow the Unix philosophyâÂÂthat each tool should provide a single capability, not attempt to accomplish everything with one toolâÂÂit has the following advantages:
Disadvantages include:
A challenge:
Generally, extensions are successively added to the file name to indicate the operations performed and therefore required to read a file. For example, archiving with command and then compressing with command might be indicated with the <code>.tar.gz</code> extension.
Archiving tools on Windows tend to have a graphical user interface (GUI) and to include compression including the built-in Windows feature as well as commonly used, third-party tools such as WinRAR and 7-Zip. Unlike the built-in feature, WinRAR and 7-zip also provide a command-line interface (CLI) and solid compression.