A collection of POSIX shell scripts to invoke archiver programs
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


archwrap - A collection of POSIX shell scripts to invoke archiver programs like
           (s)tar/gzip/bzip2/xz/zip/7z/lzma/lrzip/arj/zoo/ ...

Author: Martin Väth <vaeth@mvath.de>

This project is under the BSD license.

These are some POSIX shell scripts which form an interface to
various archiver programs like (s)tar, xz, bzip, gzip, zip, ...
It is in particular possible to invoke all archivers (keeping only the "best"
result), to repack archives, pack to remote hosts etc.
Also less popular archivers like 7z or lrz are supported.

A lot of options control the details; since the scripts are mainly written
for myself, they are not too well documented.
Use option -h to obtain help.

For installation just put the content of bin somewhere in your path.
Also put the files of the subdirectory zsh into your $fpath to obtain
zsh completion support. (If you do not have root access, you can add the
corresponding directory with fpath+=("...")) before you
call compdef from your zsh initialization files).
If you do have root access it is recommended to put the files archwrap.sh
not into the PATH (typically /usr/bin) but instead into /usr/share/archwrap/
and to modify the line ". archwrap.sh" in the binaries into
". /usr/share/archwrap/archwrap.sh".

If you do not want to put the links to your path, you can
source the archwrap_alias file (in a shell understanding the alias command)
to obtain a similar effect in an interactive shell.

You also need push.sh from https://github.com/vaeth/push in your path.

For installation under Gentoo, you can use the ebuild from the mv overlay
(which is available by layman).

Some examples showing the standard usage:

1. a) ppd directory(s) / pd directory(s)
      Packs directory(s) with all subdirectories with all archiver programs
      (each directory is put into a separate archive) and keeps
      only the "best" version. Lots of options control the details:
      Invoke "pd"/"ppd" without any arguments for a list of them.
      ppd (in contrast to pd) only chooses the most popular archivers.
   b) tgzd  directory(s)
      tbzd  directory(s)
      tlzd  directory(s)
      t7zd  directory(s)
      tlrd  directory(s)
      txzd  directory(s)
      tard  directory(s)
      zipd  directory(s)
      gzipd directory(s) (uses .tar.gz   extension)
      bzipd directory(s) (uses .tar.bz2  extension)
      lzmad directory(s) (uses .tar.lzma extension)
      xzd   directory(s) (uses .tar.xz   extension)
      7zd   directory(s) (uses .tar.7z   extension)
      lrzd  directory(s) (uses .tar.lrz  extension)
      Similarly as ppd but invokes only the corresponding archiver program.
      Different options are available, depending on the archiver program.

2. a) ud ARCHIVE
      Generate the directory ARCHIVE and unpack ARCHIVE.??? into it.
      This works for all archive formats (with proper name extension).
      Invoke "ud" without any arguments for a complete list of options.
   b) uv ARCHIVE(s) or  uv -v ARCHIVE(s)
      List content of ARCHIVE(s).
      This works for all supported archive formats.
   c) u -t ARCHIVE(s)
      Test integrity of ARCHIVE(s)
      This works for all supported archive formats whose archivers have
      corresponding options.

3. 2pd ARCHIVE or 2ppd ARCHIVE
   First unpack archive and then pack it again with all/popular archivers,
   keeping only the "best" version.
   Invoke "2pd" without any arguments for a complete list of options.

4. tbzd -C -R - / | sshcat user@host:backup.tar.bz2
   Make a compressed backup of the whole filesystem to a file on a remote host.