comprez - safely (un)tar and (de)feather files and directories
comprez [ -t | -T ] [ -v | -V ]
[ -l | -L ] [ -gz | -z | -I | -lz
| -xz | -Z | -zip | -jar ] [ -# ] [
-s suffix ] [ -m mode ] [ -p | -P
] [ -h ] [ -- ] file ...
Comprez is a simple, safe and convenient front-end for the
compress(1), uncompress(1), gzip(1), bzip2(1),
lzip(1), xz(1), tar(1), zip(1) and
unzip(1) utilities for compressing and uncompressing files and
directories. It processes each of its arguments according to the type of the
file or directory given:
If the argument is a plain file, then the file is compressed, ie,
feathered.
If the argument is a compressed file with a name ending in
.Z, .gz, .z, .bz2, .lz, .xz,
.zip or .jar, then the file is uncompressed, ie,
defeathered.
If the argument is a directory, then the directory is archived
into one tar or zip file which is then compressed, ie, tarred and
feathered.
If the argument is a compressed tar or zip archive with a name
ending in .{tar.,tar,ta,t}{Z,gz,z,bz2,lz,xz} or .{zip,jar},
then the archive is uncompressed and untarred, ie, untarred and
defeathered.
The new compressed or uncompressed version will be in the same
directory as the original. A compressed file is always uncompressed into a
file with the same name sans the feather suffix. A compressed tar or zip
archive is always unpacked into a subdirectory with the same name as the
archive sans the tar and feather suffix, even if the archive did not itself
contain such a subdirectory.
- --
- Interprets all following arguments as files instead of options.
- -#
- Where # is a digit from 1 through 9. This option is passed on to
gzip(1), bzip2(1), lzip(1), xz(1) and
zip(1) when feathering with them. --fast may be used instead
of -1 and --best instead of -9.
- -gz
- Uses gzip(1) and a .gz compression suffix when feathering.
Default.
- -h
- Prints a helpful usage message.
- -I
- Uses bzip2(1) and a .bz2 compression suffix when
feathering.
- -l
- Lists the file or directory name created resulting from each
argument.
- -L
- Does not report created files or directories. Default.
- -lz
- Uses lzip(1) and a .lz compression suffix when
feathering.
- -xz
- Uses xz(1) and a .xz compression suffix when
feathering.
- -m mode
- Apply the given chmod(1) mode argument to any created tar and
feather files. Before this argument is applied, the files have the same
read and write permissions as the directories from which they were
created. For security, the default argument is go-rwx. If the mode
is -, then no argument is applied. See chmod(1) for all
other allowable formats of this argument.
- -p
- Preserves modes when untarring by giving the p flag to
tar(1). Default.
- -P
- Doesn't preserve modes when untarring by not giving the p flag to
tar(1). This option may be necessary on systems where ordinary
users are allowed to run chown(2).
- -s suffix
- Creates tar and feather files using the given suffix style. The default
suffix style is .tgz. Note that the suffix style does not dictate
the program used for feathering nor the compression suffix.
- -t
- Only lists the table of contents of the given files. Does not make any
changes.
- -T
- (Un)tars and (de)feathers the given files according to their type.
Default.
- -v
- Verbose output. For example, reports compression ratios when
feathering.
- -V
- Non-verbose output. Does not report compression ratios. Default. -q
is a synonym.
- -z
- Uses gzip(1) and a .z compression suffix when
feathering.
- -Z
- Uses compress(1) and a .Z compression suffix when
feathering.
- -zip, -jar
- Uses zip(1) and a .zip or .jar compression suffix
when tarring and/or feathering. The zip format combines tarring and
feathering. WARNING: zip does not preserve complete Unix filesystem
information for the files it archives, such as links, some permissions,
etc. A tar(1)-based format should be used if this is required.
- ZOPTS
- This variable may be set to a string of the above options to supersede the
default settings. They may still be overridden by options given on the
command line.
- GZIP
- This environment variable for gzip(1) is not passed on by
comprez so that gzip's behavior is standard and
predictable.
- ZIPOPT, UNZIP
- These environment variables for zip(1) and unzip(1) are
not passed on by z so that their behavior is standard and
predictable.
There should be an option to allow the use of another directory
for temporary files needed during the (un)tarring and (de)feathering
processes. This would make comprez more useful when the quota or disk
is nearly full.
There should be -k and -K options for keeping the
original input files or not.
Comprez is written to work with gzip versions 1.2.3
and 1.2.4, bzip2 versions 0.9.0 and 1.0.0, Unix zip version
2.0.1 and Unix unzip version 5.12. Other versions will probably work
safely, too, but should still be checked for compatibility.
Every effort has been made to assure that the use of this program
will not lead to the inappropriate deletion or corruption of any files.
However, there are never any guarantees, so please use at your own risk.
Steve Kinzler, steve@kinzler.com, May 89/Jun 93/Aug 99/Dec 00