📄 zoo.man
字号:
It is important to note that zoo's idea of the latest gen-
eration of a file is not based upon searching the entire
archive. Instead, whenever zoo adds a file to an archive,
it is marked as being the latest generation. Thus, if the
latest generation of a file is deleted, then no generation
of that file is considered the latest any more. This can be
surprising to the user. For example, if an archive already
contains the file stdio.h:5 and a new copy is added, appear-
ing in the archive listing as stdio.h:6, and then stdio.h:6
is deleted, the remaining copy stdio.h:5 will no longer be
considered to be the latest generation, and the file
stdio.h:5, even if undeleted, will no longer appear in an
archive listing unless generation 5 (or every generation) is
specifically requested. This behavior will likely be
improved in future releases of zoo.
FILES
xXXXXXX - temporary file used during packing
archive_name.bak - backup of archive
SEE ALSO
compress(1), fiz(1)
BUGS
When files are being added to an archive on a non-MS-DOS
system, it is possible for zoo to fail to detect a full disk
and hence create an invalid archive. This bug will be fixed
in a future release.
Files with generation counts that wrap around from 65535 to
1 are not currently handled correctly. If a file's genera-
tion count reaches a value close to 65535, it should be
manually set back down to a low number. This may be easily
done with a command such as gc-65000, which subtracts 65000
from the generation count of each specified file. This
problem will be fixed in a future release.
Although zoo on **IX systems preserves the lowest nine mode
bits of regular files, it does not currently do the same for
directories.
Currently zoo's handling of the characters : and ; in
filenames is not robust, because it interprets these to
separate a filename from a generation number. A quoting
mechanism will eventually be implemented.
Standard input cannot be archived nor can a created archive
be sent to standard output. Spurious error messages may
appear if the filename of an archive is too long.
Since zoo never archives any file with the same name as the
archive or its backup (regardless of any path prefixes),
care should be taken to make sure that a file to be archived
does not coincidentally have the same name as the archive it
is being added to. It usually suffices to make sure that no
file being archived is itself a zoo archive. (Previous ver-
sions of zoo sometimes tried to add an archive to itself.
This bug now seems to be fixed.)
Only regular files are archived; devices and empty direc-
tories are not. Support for archiving empty directories and
for preserving directory attributes is planned for the near
future.
Early versions of MS-DOS have a bug that prevents "." from
referring to the root directory; this leads to anomalous
results if the extraction of paths beginning with a dot is
attempted.
VAX/VMS destroys case information unless arguments are
enclosed in double quotes. For this reason if a command
given to zoo on a VAX/VMS system includes any uppercase
characters, it must be enclosed in double quotes. Under
VAX/VMS, zoo does not currently restore file timestamps;
this will be fixed as soon as I figure out RMS extended
attribute blocks, or DEC supplies a utime() function, which-
ever occurs first. Other VMS bugs, related to file struc-
tures, can often be overcome by using the program bilf.c
that is supplied with zoo.
It is not currently possible to create a zoo archive con-
taining all zoo archives that do not contain themselves.
DIAGNOSTICS
Error messages are intended to be self-explanatory and are
divided into three categories. WARNINGS are intended to
inform the user of an unusual situation, such as a CRC error
during extraction, or -freshening of an archive containing a
file newer than one specified on the command line. ERRORS
are fatal to one file, but execution continues with the next
file if any. FATAL errors cause execution to be aborted.
The occurrence of any of these causes an exit status of 1.
Normal termination without any errors gives an exit status
of 0. (Under VAX/VMS, however, to avoid an annoying mes-
sage, zoo always exits with an error code of 1.)
COMPATIBILITY
All versions of zoo on all systems are required to create
archives that can be extracted and listed with all versions
of zoo on all systems, regardless of filename and directory
syntax or archive structure; furthermore, any version of
zoo must be able to fully manipulate all archives created by
all lower-numbered versions of zoo on all systems. So far
as I can tell, this upward compatibility (all manipulations)
and downward compatiblity (ability to extract and list) is
maintained by zoo versions up to 2.01. Version 2.1 adds the
incompatibility that if high-performance compression is
used, earlier versions cannot extract files compressed with
version 2.1. This is the only incompatibility that is
permissible. You are forbidden, with the force of copyright
law, to create from the zoo source code any derivative work
that violates this compatibility goal, whether knowingly or
through negligence. If any violation of this compatibility
goal is observed, this should be considered a serious prob-
lem and reported to me.
CHANGES
Here is a list of changes occurring from version 1.50 to
version 2.01. In parentheses is given the version in which
each change occurred.
- (1.71) New modifiers to the list commands permit
optional suppression of header and trailer information,
inclusion of directory names in columnized listings,
and fast one-column listings.
- (1.71) Timezones are handled.
- (1.71) A bug was fixed that had made it impossible to
individually update comments for a file whose name did
not correspond to MS-DOS format.
- (1.71) A change was made that now permits use of the
shared library on the **IX PC.
- (1.71) VAX/VMS is now supported reasonably well.
- (2.00) A comment may now be attached to the archive
itself.
- (2.00) The OO option allows forced overwriting of
read-only files.
- (2.00) Zoo will no longer extract a file if a newer
copy already exists on disk; the S option will over-
ride this.
- (2.00) File attributes are preserved for **IX systems.
- (2.00) Multiple generations of the same file are sup-
ported.
- (2.00) Zoo will now act as a compression or decompres-
sion filter on a stream of data and will use a CRC
value to check the integrity of a data stream that is
uncompressed.
- (2.00) A bug was fixed that caused removal of a direc-
tory link if files were moved to an archive by the
superuser on a **IX system.
- (2.00) The data recovery modifier @ was greatly
enhanced. Self-extracting archives created for MS-DOS
systems can now be extracted by zoo on any system with
help from fiz(1).
- (2.01) A bug was fixed that had caused the first gen-
eration of a file to sometimes unexpectedly show up in
archive listings.
- (2.01) A bug was fixed that had caused the MS-DOS ver-
sion to silently skip files that could not be extracted
because of insufficient disk space.
- (2.01) A bug was fixed that had sometimes made it
impossible to selectively extract a file by specifying
its name, even though all files could be extracted from
the archive by not specifying any filenames. This
occurred when a file had been archived on a longer-
filename system (e.g. AmigaDOS) and extraction was
attempted on a shorter-filename system (e.g. MS-DOS).
- (2.01) A change was made that will make zoo preserve
the mode (file protection) of a zoo archive when it is
packed. This is effective only if zoo is compiled to
preserve and restore file attributes. Currently this
is so only for **IX systems.
- (2.01) A bug was fixed that had caused an update of an
archive to not always add all newer files.
- (2.01) Blanks around equal signs in commands given to
"make" were removed from the mk* scripts for better
compatiblity with more **IX implementations including
Sun's.
- (2.1) Compression is now greatly improved if the "h"
option is used.
- (2.1) The default behavior is to preserve full path-
names during extraction.
- (2.1) On some systems, extraction of files using the
older (default) compression method is greatly speeded
up.
- (2.1) Extended multiscreen help is available.
- (2.1) Memory allocation is improved, so that the MS-DOS
version will not prematurely abort when updating a
large archive.
- (2.1) The VAX/VMS version preserves file timestamps
during extraction.
- (2.1) The default archive-wide generation limit, when
generations are enabled, is 3.
FUTURE DIRECTIONS
A revised version of zoo is in the works that will be able
to write newly-created archives to standard output and will
support multivolume archives. It will be upward and down-
ward compatible with this version of zoo.
ACKNOWLEDGEMENTS
The zoo archiver was initially developed using Microsoft C
3.0 on a PC clone manufactured by Toshiba of Japan and
almost sold by Xerox. Availability of the following systems
was helpful in achieving portability: Paul Homchick's Compaq
running Microport System V/AT; The Eskimo BBS somewhere in
Oregon running Xenix/68000; Greg Laskin's system 'gryphon'
which is an Intel 310 running Xenix/286; Ball State
University's AT&T 3B2/300, UNIX PC, and VAX-11/785 (4.3BSD
and VAX/VMS) systems. In addition J. Brian Waters provided
feedback to help me make the code compilable on his Amiga
using Manx/Aztec C. The executable version 2.0 for MS-DOS
is currently compiled with Borland's Turbo C++ 1.0.
Thanks are due to the following people and many others too
numerous to mention.
J. Brian Waters <jbwaters@bsu-cs.bsu.edu>, who has worked
diligently to port zoo to AmigaDOS, created Amiga-specific
code, and continues keeping it updated.
Paul Homchick <rutgers!cgh!paul>, who provided numerous
detailed reports about some nasty bugs.
Bill Davidsen <davidsen@crdos1.crd.ge.com>, who provided
numerous improvements to this manual, contributed mul-
tiscreen help, and provided many useful bug reports, bug
fixes, code improvements, and suggestions.
Mark Alexander <amdahl!drivax!alexande>, who provided me
with some bug fixes.
Haruhiko Okumura, who wrote the ar archiver and some excel-
lent compression code, which I adapted for use in zoo.
Randal L. Barnes <rlb@skyler.mavd.honeywell.com>, who (with
Randy Magnuson) wrote the code to support the preservation
of file timestamps under VAX/VMS.
Raymond D. Gardner, who contributed replacement uncompres-
sion code that on some systems is twice as fast as the
original.
Greg Yachuk and Andre Van Dalen, who independently modified
MS-DOS zoo to support multivolume archives. (This support
is not yet in this official release.)
AUTHOR
Rahul Dhesi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -