Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ afio(1) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cpio(1)

find(1)

tar(1)

tp(1)

compress(1)



AFIO(1)                          UNIX System V                          AFIO(1)


NAME
      afio - manipulate archives and files

SYNOPSIS
      afio -o [ options ] archive
      afio -t [ options ] archive
      afio -i [ options ] archive
      afio -p [ options ] directory [ ... ]

DESCRIPTION
      Afio manipulates groups of files, copying them within the (collective)
      filesystem or between the filesystem and an afio archive. Note that afio
      archives are portable, as they contain only ASCII-formatted header
      information. They are also compatible with ASCII cpio(1) archives (ala
      cpio -c).

      With -o, reads pathnames from the standard input and writes an archive.

      With -t, reads an archive and writes a table-of-contents to the standard
      output.

      With -i, installs the contents of an archive relative to the working
      directory.

      With -p, reads pathnames from the standard input and copies the files to
      each directory.

      Creates missing directories as necessary, with permissions to match their
      parents.

      Generates sparse filesystem blocks (with lseek(2)) when possible.

      Supports multi-volume archives during interactive operation (i.e., when
      /dev/tty is accessible and SIGINT is not being ignored).

      Options:

      -b size      Read or write size-character archive blocks.  Suffices of b,
                   k and m denote multiples of 512, 1024 and 1048576,
                   respectively.  Defaults to 5120 for compatibility with
                   cpio(1).

      -c count     Buffer count archive blocks between I/O operations. A large
                   count is recommended with streaming magnetic tape drives.

      -d           Don't create missing directories.

      -e bound     Pad the archive to a multiple of bound characters.
                   Recognizes the same suffices as -s.  Defaults to 1x (the -b
                   block size) for compatibility with cpio(1).




10/89                                                                    Page 1







AFIO(1)                          UNIX System V                          AFIO(1)


      -f           Spawn a child process to actually write to the archive;
                   provides a clumsy form of double-buffering.  Requires -s for
                   multi-volume archive support.

      -g           Change to input file directories. Avoids quadratic
                   filesystem behavior with long similar pathnames. Requires
                   all absolute pathnames, including those for the -o archive
                   and the -p directories.

      -h           Follow symbolic links, treating them as ordinary files and
                   directories.

      -j           Don't generate sparse filesystem blocks.

      -k           Skip corrupt data at the beginning of an archive (rather
                   than complaining about unrecognizable input).

      -l           With -o, write file contents with each hard link.

                   With -t, report hard links.

                   With -p, attempt to link files rather than copying them.

      -m           Mark output files with a common current timestamp (rather
                   than with input file modification times).

      -n           Protect newer existing files (comparing file modification
                   times).

      -s limit     Restrict each portion of a multi-volume archive to limit
                   characters.  Recognizes the same suffices as -b.  Also, the
                   suffix x denotes a multiple of the -b block size (and must
                   follow any -b specification).  Useful with finite-length
                   devices which do not return short counts at end of media
                   (sigh); output to magnetic tape typically falls into this
                   category.

      -u           Report files with unseen links.

      -v           Verbose. Report pathnames as they are processed. With -t,
                   gives an ls -l style report (including link information).

      -x           Retain file ownership and setuid/setgid permissions.  This
                   is the default for the super-user; he may use -X to override
                   it.

      -y prefix    Restrict archive processing to names beginning with prefix.
                   Specify once for each prefix to be recognized.  Use -Y to
                   supply prefixes which are not to be processed.





Page 2                                                                    10/89







AFIO(1)                          UNIX System V                          AFIO(1)


      -z           Print execution statistics. This is meant for human
                   consumption; use by other programs is officially
                   discouraged.

      -A    Do not turn absolute paths into relative paths. That is don't
            remove the leading slash.

      -F    This is a floppy disk, -s is required.  Uses shared memory if
            compiled in otherwise mallocs as needed (a 3b1 will not be able to
            malloc the needed memory w/o shared memory), afio assumes either
            way you can malloc/shmalloc a chunck of memory the size of one
            disk. Examples: 795k: 3.5" (720k drive), 316k (360k drive)
            At the end of each disk this message occurs:
             Ready for disk [#] on [output] (remove the disk when the light goes out)
             Type "go" (or "GO") when ready to proceed (or "quit" to abort):

      -K    Verify the output against what is in the memory copy of the disk
            (-F required).  If the writing or verifying fails the following
            menu pops up (the hidden option "quit" will also exit from the
            backup at this point).
                [Writing/Verify] of disk [disk #] has FAILED (try option #3 first ])!
                  Enter 1 to RETRY this disk
                  Enter 2 to REFORMAT this disk
                  Enter 3 to REFORMAT AND THEN RETRY this disk if the format works

      -L Logfilepath
            Specify the name of the file to log errors and the finial totals
            to.

      -R Disk format command string
            This is the command that is run when you enter 2 to reformat the
            disk.  The default (char *formatcmd = "sh /u/store/format.sh") can
            be changed to a given system's default.

      -Z    Compress the files on the way out, in, and passing without links
            (valid w/ or w/o -F or -K), requires compress and uncompress to be
            in your path.

      Special-case archive names:

         o  Specify - to read or write the standard input or output,
            respectively.  This disables multi-volume archive handling.

         o  Prefix a command string to be executed with an exclamation mark
            (!).  The command is executed once for each archive volume, with
            its standard input or output piped to afio.  It is expected to
            produce a zero exit code when all is well.

         o  Use system:file to access an archive in file on system.  This is
            really just a special case of pipelining.  It requires a 4.2BSD-
            style remote shell (rsh(1C)) and a remote copy of afio.



10/89                                                                    Page 3







AFIO(1)                          UNIX System V                          AFIO(1)


         o  Anything else specifies a local file or device.  An output file
            will be created if it does not already exist.

      Recognizes obsolete binary cpio(1) archives (including those from
      machines with reversed byte order), but cannot write them.

      Recovers from archive corruption by searching for a valid magic number.
      This is rather simplistic, but, much like a disassembler, almost always
      works.

      Optimizes pathnames with respect to the current and parent directories.
      For example, ./src/sh/../misc/afio.c becomes src/misc/afio.c.

EXAMPLE
            AT&T 3b1 (all one line)       find /u/bstore -print | \
      afio -ovzFZK -L/u/store/BackupLog \         -R'/etc/iv -i /dev/rfp020
      /usr/lib/iv/FDnl' -s$DISKSIZE /dev/rfp021

BUGS
      There are too many options.

      Restricts pathnames to 1023 characters and 255 meaningful elements.

      There is no sequence information within multi-volume archives.  Input
      sequence errors generally masquerade as data corruption.  A solution
      would probably be mutually exclusive with cpio(1) compatibility.

      Degenerate uses of symbolic links are mangled by pathname optimization.
      For example, assuming that "usr.src" is a symbolic link to "/usr/src",
      the pathname "usr.src/../bin/cu" is mis-optimized into "bin/cu" (rather
      than "/usr/bin/cu").

SEE ALSO
      cpio(1), find(1), tar(1), tp(1), compress(1).

AUTHOR
      Mark Brukhartz
      ..!ihnp4!laidbak!mdb
      Jeff Buhrt (floppy/compression extensions)
      uunet!sawmill!prslnk!buhrt














Page 4                                                                    10/89





Typewritten Software • bear@typewritten.org • Edmonds, WA 98026