lbrate man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

lbrate(1)		      Archive Extraction		     lbrate(1)

NAME
       lbrate - extract/decompress CP/M LBR archives

SYNOPSIS
       lbrate [-chlntv] [archive.lbr] [match1 [match2 ... ]]
DESCRIPTION
       lbrate  lists, extracts, or tests CP/M LBR archives. It does this in an
       `unzip'-like manner, mostly hiding the  details	of  individually  com‐
       pressed	and  renamed  files, and transparently deals with the required
       decompression and renaming.

       (It can also work on CP/M-ish compressed files (`squeezed', etc.)  out‐
       side of such archives, treating them as if they were really single-mem‐
       ber LBRs.)

       The default action is to extract all files in  the  specified  archive;
       see OPTIONS below for how to do other things instead.

OPTIONS
       -c     use/show	creation  date	(and  time) rather than last-modified.
	      (But note that many LBRs lack date/time stamps entirely.)

       -h     give terse usage help.

       -l     list files in archive. If verbose listings are enabled, it shows
	      the  filename  (and  the modified filename actually given in the
	      LBR, if the file is compressed), compression method,  compressed
	      size  (the  uncompressed	size  can't be easily determined), and
	      CRC; but by default, it just shows the filename  and  compressed
	      size.

       -n     don't decompress files, just extract the files precisely as they
	      are stored in the LBR. This also means the possibly-modified LBR
	      filenames	 are  used (see FILENAME ISSUES below), even when used
	      with `-l'.

       -t     test files in archive - check file CRCs at the LBR  level,  also
	      checking	file  checksums	 for  any  compressed  files. (If used
	      together with `-n', only LBR CRCs are checked.)

       -v     give verbose output (when used with `-l').  Using `-lv'  is  the
	      easiest way to see the filenames specified in the LBR, which are
	      (due to compression/renaming) usually  not  the  original	 file‐
	      names.

       archive.lbr
	      the archive to operate on. You can also specify a CP/M-ish indi‐
	      vidually-compressed  file	 (these	 have  names  like  `foo.tqt',
	      `bar.dzc',  and  `baz.cym');  these  are treated as if they were
	      single-entry LBRs.

       match1 etc.
	      optionally specify which archive members	to  list/extract/test.
	      Those  which  match  any	of  these filenames/wildcards are pro‐
	      cessed. Wildcard operators supported are shell-like `*' and `?',
	      but  don't  forget  to  quote  arguments	which  use these (e.g.
	      `lbrate foo.lbr '*.bar'').  Note that, unless you're using `-n',
	      these  matches  are  always  on  the  original filename (the one
	      lbrate normally shows you), and not the (often  modified)	 file‐
	      name stored in the LBR.

FILENAME ISSUES
       All  this  talk	of modified filenames is probably rather confusing, so
       here's a brief summary of what the deal is with	LBR  files  for	 those
       unfamiliar with the situation.

       The LBR format in itself is a pure, uncompressed archival format; a bit
       like tar files. But while tar files are normally compressed  after  the
       component  files	 get  bundled  together,  LBR  files  normally	bundle
       together compressed files.

       Now, CP/M is limited to 8.3 file naming, so  compressed	files  weren't
       indicated  by  adding  an extension, but (loosely speaking) by changing
       the 2nd character of the extension. So  foo.txt	becomes	 foo.tqt,  for
       example. What happens to the original name? Easy, it gets stored in the
       compressed file, and is restored when it's decompressed.

       So, there we have the justification for lbrate's behaviour -  LBRs  are
       often  full of weirdly-named files, so it's generally best to peek into
       the start of any compressed files, find	the  real  filename,  and  use
       that.  Since  the  compressed file formats all have `magic numbers' and
       can be very reliably detected, this approach is pretty much ideal.

EXTRACTING MULTIPLE ARCHIVES
       lbrate follows the `unzip'-like practice of working on only one archive
       per  run,  with	further `filenames' given on the command-line actually
       specifying files to extract (or whatever). The easiest way to  work  on
       multiple	 files	with  lbrate  is simply to run it multiple times using
       for; for example:

       for i in *.{lbr,LBR}; do lbrate -t $i; done

       The above would	test  all  LBR	archives  in  the  current  directory.
       Another example, this time to extract all the squeezed/crunched files:

       for i in *.?[qzQZ]*; do lbrate $i; done

TIMESTAMPS
       While  the  LBR format did support file dates/times, there are a lot of
       LBRs which lack them. lbrate's approach to this is simply to  use  them
       whenever	 available.  The  last-modified	 date/time  is	used/shown  by
       default; specify `-c' to get creation date/time instead.

DIAGNOSTICS
       Given the two-level nature of the extraction process (the  raw  extrac‐
       tion  of the file from the LBR, then any required decompression), there
       are (unless `-n' is used) two different ways that a  corrupted  archive
       can  cause  reading  from  the LBR to fail. lbrate tries to communicate
       this in the way which seems most reasonable given the  way  it's	 being
       run, as described here.

       When  testing  an  archive, lbrate gives priority to LBR CRC errors. It
       only mentions an error decompressing when there wasn't a CRC  error  at
       the LBR level.

       When  extracting an archive, lbrate considers decompression errors more
       important; and note that currently, a decompression error means no file
       data  is	 written. (Though in this case it does say `seems valid at LBR
       level?'	if the LBR CRC was ok.) If there's `only' an LBR CRC mismatch,
       then file data is written, but with a warning.

BUGS
       The  CRC	 used  by  LBR	is only 16-bit, so `-t' is a less-than-perfect
       test. The additional checksum test for  compressed  files  may  improve
       matters slightly.

SEE ALSO
       nomarch(1), tar(1), gzip(1), bzip2(1)

       The CP/M programs `lt' and `lbrext' do something similar.

AUTHOR
       Russell Marks (rus@svgalib.org).

       The  LZH	 decompression	is based on code by Haruhiko Okumura, Haruyasu
       Yoshizaki, and Kenji Rikitake.

Version 1.1		      30th November, 2001		     lbrate(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net