home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / tar-1.11.8-bin.lha / info / tar.info-6 (.txt) < prev    next >
GNU Info File  |  1996-10-12  |  50KB  |  953 lines

  1. This is Info file tar.info, produced by Makeinfo-1.64 from the input
  2. file /ade-src/fsf/tar/doc/tar.texinfo.
  3. START-INFO-DIR-ENTRY
  4. * tar: (tar).            Making tape (or disk) archives.
  5. END-INFO-DIR-ENTRY
  6.    This file documents GNU `tar', a utility used to store, backup, and
  7. transport files.
  8.    Copyright (C) 1992, 1994, 1995 Free Software Foundation, Inc.
  9.    Permission is granted to make and distribute verbatim copies of this
  10. manual provided the copyright notice and this permission notice are
  11. preserved on all copies.
  12.    Permission is granted to copy and distribute modified versions of
  13. this manual under the conditions for verbatim copying, provided that
  14. the entire resulting derived work is distributed under the terms of a
  15. permission notice identical to this one.
  16.    Permission is granted to copy and distribute translations of this
  17. manual into another language, under the above conditions for modified
  18. versions, except that this permission notice may be stated in a
  19. translation approved by the Foundation.
  20. File: tar.info,  Node: mt,  Prev: Tape Positioning,  Up: Many
  21. The `mt' Utility
  22. ----------------
  23.      *(This message will disappear, once this node revised.)*
  24. FIXME: is it true that this only works on non-block devices?  should
  25. FIXME: explain the difference, xref to block-size (fixed or variable).
  26.    You can use the `mt' utility to advance or rewind a tape past a
  27. specified number of archive files on the tape.  This will allow you to
  28. move to the beginning of an archive before extracting or reading it, or
  29. to the end of all the archives before writing a new one.
  30. FIXME: why isn't there an "advance 'til you find two tape marks together"?
  31.    The syntax of the `mt' command is:
  32.      mt [-f TAPENAME] OPERATION [NUMBER]
  33.    where TAPENAME is the name of the tape device, NUMBER is the number
  34. of times an operation is performed (with a default of one), and
  35. OPERATION is one of the following:
  36. FIXME: is there any use for record operations?
  37. `eof'
  38. `weof'
  39.      Writes NUMBER tape marks at the current position on the tape.
  40. `fsf'
  41.      Moves tape position forward NUMBER files.
  42. `bsf'
  43.      Moves tape position back NUMBER files.
  44. `rewind'
  45.      Rewinds the tape. (Ignores NUMBER).
  46. `offline'
  47. `rewoff1'
  48.      Rewinds the tape and takes the tape device off-line. (Ignores
  49.      NUMBER).
  50. `status'
  51.      Prints status information about the tape unit.
  52. FIXME: is there a better way to frob the spacing on the list?
  53.    If you don't specify a TAPENAME, `mt' uses the environment variable
  54. TAPE; if TAPE does not exist, `mt' uses the device `/dev/rmt12'.
  55.    `mt' returns a 0 exit status when the operation(s) were successful,
  56. 1 if the command was unrecognized, and 2 if an operation failed.
  57. FIXME: new node on how to find an archive?
  58.    If you use `--extract' (`-x') with the `--label=ARCHIVE-LABEL' (`-V
  59. ARCHIVE-LABEL') option specified, `tar' will read an archive label (the
  60. tape head has to be positioned on it) and print an error if the archive
  61. label doesn't match the ARCHIVE-NAME specified.  ARCHIVE-NAME can be
  62. any regular expression.  If the labels match, `tar' extracts the
  63. archive.
  64. FIXME: xref Archive Label
  65. FIXME: xref Matching Format Parameters
  66. FIXME: fix cross references
  67.    `tar --list --label' will cause `tar' to print the label.
  68. FIXME: program to list all the labels on a tape?
  69. File: tar.info,  Node: Using Multiple Tapes,  Next: Archive Label,  Prev: Many,  Up: Media
  70. Using Multiple Tapes
  71. ====================
  72.      *(This message will disappear, once this node revised.)*
  73.    Often you might want to write a large archive, one larger than will
  74. fit on the actual tape you are using.  In such a case, you can run
  75. multiple `tar' commands, but this can be inconvenient, particularly if
  76. you are using options like `--exclude=PATTERN' or dumping entire
  77. filesystems.  Therefore, `tar' supports multiple tapes automatically.
  78.    Use `--multi-volume' (`-M') on the command line, and then `tar' will,
  79. when it reaches the end of the tape, prompt for another tape, and
  80. continue the archive.  Each tape will have an independent archive, and
  81. can be read without needing the other.  (As an exception to this, the
  82. file that `tar' was archiving when it ran out of tape will usually be
  83. split between the two archives; in this case you need to extract from
  84. the first archive, using `--multi-volume' (`-M'), and then put in the
  85. second tape when prompted, so `tar' can restore both halves of the
  86. file.)
  87.    When prompting for a new tape, `tar' accepts any of the following
  88. responses:
  89.      Request `tar' to explain possible responses
  90.      Request `tar' to exit immediately.
  91. `n FILE NAME'
  92.      Request `tar' to write the next volume on the file FILE NAME.
  93.      Request `tar' to run a subshell.
  94.      Request `tar' to begin writing the next volume.
  95.    (You should only type `y' after you have changed the tape; otherwise
  96. `tar' will write over the volume it just finished.)
  97.    If you want more elaborate behavior than this, give `tar' the
  98. `--info-script=SCRIPT-NAME' (`-F SCRIPT-NAME') option.  The file
  99. SCRIPT-NAME is expected to be a program (or shell script) to be run
  100. instead of the normal prompting procedure.  When the program finishes,
  101. `tar' will immediately begin writing the next volume.  The behavior of
  102. the `n' response to the normal tape-change prompt is not available if
  103. you use `--info-script=SCRIPT-NAME' (`-F SCRIPT-NAME').
  104.    The method `tar' uses to detect end of tape is not perfect, and
  105. fails on some operating systems or on some devices.  You can use the
  106. `--tape-length=1024-SIZE' (`-L 1024-SIZE') option if `tar' can't detect
  107. the end of the tape itself.  The SIZE argument should be the size of
  108. the tape.
  109.    The volume number used by `tar' in its tape-change prompt can be
  110. changed; if you give the `--volno-file=FILE-OF-NUMBER' option, then
  111. FILE-OF-NUMBER should contain a decimal number.  That number will be
  112. used as the volume number of the first volume written.  When `tar' is
  113. finished, it will rewrite the file with the now-current volume number.
  114. (This does not change the volume number written on a tape label (
  115. FIXME: pxref Special Options for Archiving
  116.    ; it *only* affects the number used in the prompt.)
  117.    If you want `tar' to cycle through a series of tape drives, then you
  118. can use the `n' response to the tape-change prompt.  This is error
  119. prone, however, and doesn't work at all with
  120. `--info-script=SCRIPT-NAME' (`-F SCRIPT-NAME').  Therefore, if you give
  121. `tar' multiple `--file=ARCHIVE-NAME' (`-f ARCHIVE-NAME') options, then
  122. the specified files will be used, in sequence, as the successive volumes
  123. of the archive.  Only when the first one in the sequence needs to be
  124. used again will `tar' prompt for a tape change (or run the info script).
  125.    Multi-volume archives
  126.    With `--multi-volume' (`-M'), `tar' will not abort when it cannot
  127. read or write any more data.  Instead, it will ask you to prepare a new
  128. volume.  If the archive is on a magnetic tape, you should change tapes
  129. now; if the archive is on a floppy disk, you should change disks, etc.
  130.    Each volume of a multi-volume archive is an independent `tar'
  131. archive, complete in itself.  For example, you can list or extract any
  132. volume alone; just don't specify `--multi-volume' (`-M').  However, if
  133. one file in the archive is split across volumes, the only way to extract
  134. it successfully is with a multi-volume extract command `--extract
  135. --multi-volume' (`-xM') starting on or before the volume where the file
  136. begins.
  137. * Menu:
  138. * Multi-Volume Archives::
  139. * Tape Files::
  140. File: tar.info,  Node: Multi-Volume Archives,  Next: Tape Files,  Prev: Using Multiple Tapes,  Up: Using Multiple Tapes
  141. Archives Longer than One Tape or Disk
  142. -------------------------------------
  143.      *(This message will disappear, once this node revised.)*
  144.    To create an archive that is larger than will fit on a single unit of
  145. the media, use the `--multi-volume' (`-M') option in conjunction with
  146. the `--create' (`-c') option (
  147. FIXME: pxref Creating Archives
  148.    ).  A "multi-volume" archive can be manipulated like any other
  149. archive (provided the `--multi-volume' (`-M') option is specified), but
  150. is stored on more than one tape or disk.
  151.    When you specify `--multi-volume' (`-M'), `tar' does not report an
  152. error when it comes to the end of an archive volume (when reading), or
  153. the end of the media (when writing).  Instead, it prompts you to load a
  154. new storage volume.  If the archive is on a magnetic tape, you should
  155. change tapes when you see the prompt; if the archive is on a floppy
  156. disk, you should change disks; etc.
  157.    You can read each individual volume of a multi-volume archive as if
  158. it were an archive by itself.  For example, to list the contents of one
  159. volume, use `--list' (`-t'), without `--multi-volume' (`-M') specified.
  160. To extract an archive member from one volume (assuming it is described
  161. that volume), use `--extract' (`-x'), again without `--multi-volume'
  162. (`-M').
  163.    If an archive member is split across volumes (ie. its entry begins on
  164. one volume of the media and ends on another), you need to specify
  165. `--multi-volume' (`-M') to extract it successfully.  In this case, you
  166. should load the volume where the archive member starts, and use `tar
  167. --extract --multi-volume'--`tar' will prompt for later volumes as it
  168. needs them.
  169. FIXME: xref Extracting From Archives
  170.    for more information about extracting archives.
  171.    `--info-script=SCRIPT-NAME' (`-F SCRIPT-NAME') is like
  172. `--multi-volume' (`-M'), except that `tar' does not prompt you directly
  173. to change media volumes when a volume is full--instead, `tar' runs
  174. commands you have stored in SCRIPT-NAME.  This option can be used to
  175. broadcast messages such as `Someone please come change my tape' when
  176. performing unattended backups.  When SCRIPT-NAME is done, `tar' will
  177. assume that the media has been changed.
  178. FIXME: There should be a sample program here, including an exit before
  179. FIXME: end.
  180. `--multi-volume'
  181.      Creates a multi-volume archive, when used in conjunction with
  182.      `--create' (`-c').  To perform any other operation on a
  183.      multi-volume archive, specify `--multi-volume' (`-M') in
  184.      conjunction with that operation.
  185. `--info-script=PROGRAM-FILE'
  186. `-F PROGRAM-FILE'
  187.      Creates a multi-volume archive via a script.  Used in conjunction
  188.      with `--create' (`-c').
  189. File: tar.info,  Node: Tape Files,  Prev: Multi-Volume Archives,  Up: Using Multiple Tapes
  190. Tape Files
  191. ----------
  192.      *(This message will disappear, once this node revised.)*
  193.    When `tar' writes an archive to tape, it creates a single tape file.
  194. If multiple archives are written to the same tape, one after the
  195. other, they each get written as separate tape files.  When extracting,
  196. it is necessary to position the tape at the right place before running
  197. `tar'.  To do this, use the `mt' command.  For more information on the
  198. `mt' command and on the organization of tapes into a sequence of tape
  199. files.
  200. FIXME: see ***.
  201. File: tar.info,  Node: Archive Label,  Prev: Using Multiple Tapes,  Up: Media
  202. Including a Label in the Archive
  203. ================================
  204.      *(This message will disappear, once this node revised.)*
  205. FIXME: Should the arg to --label be a quoted string??  no - ringo
  206.    To avoid problems caused by misplaced paper labels on the archive
  207. media, you can include a "label" entry--an archive member which
  208. contains the name of the archive--in the archive itself.  Use the
  209. `--label=ARCHIVE-LABEL' (`-V ARCHIVE-LABEL') option in conjunction with
  210. the `--create' (`-c') operation to include a label entry in the archive
  211. as it is being created.
  212.    If you create an archive using both `--label=ARCHIVE-LABEL' (`-V
  213. ARCHIVE-LABEL') and `--multi-volume' (`-M'), each volume of the archive
  214. will have an archive label of the form `ARCHIVE-LABEL Volume N', where
  215. N is 1 for the first volume, 2 for the next, and so on.
  216. FIXME: xref Multi-Volume Archives
  217.    , for information on creating multiple volume archives.
  218.    If you extract an archive using `--label=ARCHIVE-LABEL' (`-V
  219. ARCHIVE-LABEL'), `tar' will print an error if the archive label doesn't
  220. match the ARCHIVE-LABEL specified, and will then not extract the
  221. archive.  You can include a regular expression in ARCHIVE-LABEL, in
  222. this case only.
  223. FIXME: why is a reg. exp. useful here?  (to limit extraction to a
  224. FIXME: specific group?  ie for multi-volume???
  225.    To find out an archive's label entry (or to find out if an archive
  226. has a label at all), use `tar --list --verbose'.  `tar' will print the
  227. label first, and then print archive member information, as in the
  228. example below:
  229.      % tar --verbose --list --file=iamanarchive
  230.      V--------- 0/0        0 Mar  7 12:01 1992 iamalabel--Volume Header--
  231.      -rw-rw-rw- ringo/user 40 May 21 13:30 1990 iamafilename
  232. `--label=ARCHIVE-LABEL'
  233. `-V ARCHIVE-LABEL'
  234.      Includes an "archive-label" at the beginning of the archive when
  235.      the archive is being created, when used in conjunction with the
  236.      `--create' (`-c') option.  Checks to make sure the archive label
  237.      matches the one specified (when used in conjunction with the
  238.      `--extract' (`-x') option.
  239. FIXME: was --volume
  240. File: tar.info,  Node: Backups and Restoration,  Next: Date input formats,  Prev: Media,  Up: Top
  241. Performing Backups and Restoring Files
  242. **************************************
  243.      *(This message will disappear, once this node revised.)*
  244.      .* dumps
  245.      . + what are dumps
  246.      
  247.      . + different levels of dumps
  248.      .  - full dump = dump everything
  249.      .  - level 1, level 2 dumps etc, -
  250.          A level n dump dumps everything changed since the last level
  251.          n-1 dump (?)
  252.      
  253.      . + how to use scripts for dumps  (ie, the concept)
  254.      .  - scripts to run after editing backup specs (details)
  255.      
  256.      . + Backup Specs, what is it.
  257.      .  - how to customize
  258.      .  - actual text of script  [/sp/dump/backup-specs]
  259.      
  260.      . + Problems
  261.      .  - rsh doesn't work
  262.      .  - rtape isn't installed
  263.      .  - (others?)
  264.      
  265.      . + the --incremental option of tar
  266.      
  267.      . + tapes
  268.      .  - write protection
  269.      .  - types of media
  270.      .   : different sizes and types, useful for different things
  271.      .  - files and tape marks
  272.           one tape mark between files, two at end.
  273.      .  - positioning the tape
  274.           MT writes two at end of write, backspaces over one when writing again.
  275.    To "back up" a file system means to create archives that contain all
  276. the files in that file system.  Those archives can then be used to
  277. restore any or all of those files (for instance if a disk crashes or a
  278. file is accidently deleted).  File system "backups" are also called
  279. "dumps".
  280. * Menu:
  281. * Full Dumps::
  282. * Inc Dumps::
  283. * incremental and listed-incremental::
  284. * Backup Levels::
  285. * Backup Parameters::
  286. * Scripted Backups::
  287. * Scripted Restoration::
  288. File: tar.info,  Node: Full Dumps,  Next: Inc Dumps,  Prev: Backups and Restoration,  Up: Backups and Restoration
  289. Using `tar' to Perform Full Dumps
  290. =================================
  291.      *(This message will disappear, once this node revised.)*
  292.    Full dumps should only be made when no other people or programs are
  293. modifying files in the filesystem.  If files are modified while `tar'
  294. is making the backup, they may not be stored properly in the archive,
  295. in which case you won't be able to restore them if you have to.  (Files
  296. not being modified are written with no trouble, and do not corrupt the
  297. entire archive.)
  298.    You will want to use the `--label=ARCHIVE-LABEL' (`-V
  299. ARCHIVE-LABEL') option to give the archive a volume label, so you can
  300. tell what this archive is even if the label falls off the tape, or
  301. anything like that.
  302.    Unless the filesystem you are dumping is guaranteed to fit on one
  303. volume, you will need to use the `--multi-volume' (`-M') option.  Make
  304. sure you have enough tapes on hand to complete the backup.
  305.    If you want to dump each filesystem separately you will need to use
  306. the `--one-file-system' (`-l') option to prevent `tar' from crossing
  307. filesystem boundaries when storing (sub)directories.
  308.    The `--incremental' (`-G') option is not needed, since this is a
  309. complete copy of everything in the filesystem, and a full restore from
  310. this backup would only be done onto a completely empty disk.
  311.    Unless you are in a hurry, and trust the `tar' program (and your
  312. tapes), it is a good idea to use the `--verify' (`-W') option, to make
  313. sure your files really made it onto the dump properly.  This will also
  314. detect cases where the file was modified while (or just after) it was
  315. being archived.  Not all media (notably cartridge tapes) are capable of
  316. being verified, unfortunately.
  317.    `--listed-incremental=SNAPSHOT-FILE' (`-g SNAPSHOT-FILE') take a
  318. file name argument always.  If the file doesn't exist, run a level zero
  319. dump, creating the file.  If the file exists, uses that file to see
  320. what has changed.
  321.    `--incremental' (`-G')
  322. FIXME: look it up
  323.    `--incremental' (`-G') handle old GNU-format incremental backup.
  324.    This option should only be used when creating an incremental backup
  325. of a filesystem.  When the `--incremental' (`-G') option is used, `tar'
  326. writes, at the beginning of the archive, an entry for each of the
  327. directories that will be operated on.  The entry for a directory
  328. includes a list of all the files in the directory at the time the dump
  329. was done, and a flag for each file indicating whether the file is going
  330. to be put in the archive.  This information is used when doing a
  331. complete incremental restore.
  332.    Note that this option causes `tar' to create a non-standard archive
  333. that may not be readable by non-GNU versions of the `tar' program.
  334.    The `--incremental' (`-G') option means the archive is an incremental
  335. backup.  Its meaning depends on the command that it modifies.
  336.    If the `--incremental' (`-G') option is used with `--list' (`-t'),
  337. `tar' will list, for each directory in the archive, the list of files in
  338. that directory at the time the archive was created.  This information
  339. is put out in a format that is not easy for humans to read, but which
  340. is unambiguous for a program: each file name is preceded by either a
  341. `Y' if the file is present in the archive, an `N' if the file is not
  342. included in the archive, or a `D' if the file is a directory (and is
  343. included in the archive).  Each file name is terminated by a null
  344. character.  The last file is followed by an additional null and a
  345. newline to indicate the end of the data.
  346.    If the `--incremental' (`-G') option is used with `--extract'
  347. (`-x'), then when the entry for a directory is found, all files that
  348. currently exist in that directory but are not listed in the archive *are
  349. deleted from the directory*.
  350.    This behavior is convenient when you are restoring a damaged file
  351. system from a succession of incremental backups: it restores the entire
  352. state of the file system to that which obtained when the backup was
  353. made.  If you don't use `--incremental' (`-G'), the file system will
  354. probably fill up with files that shouldn't exist any more.
  355.    `--listed-incremental=SNAPSHOT-FILE' (`-g SNAPSHOT-FILE') handle new
  356. GNU-format incremental backup.
  357.    `--listed-incremental=SNAPSHOT-FILE' (`-g SNAPSHOT-FILE') acts like
  358. `--incremental' (`-G'), but when used in conjunction with `--create'
  359. (`-c') will also cause `tar' to use the file FILE, which contains
  360. information about the state of the filesystem at the time of the last
  361. backup, to decide which files to include in the archive being created.
  362. That file will then be updated by `tar'.  If the file FILE does not
  363. exist when this option is specified, `tar' will create it, and include
  364. all appropriate files in the archive.
  365.    The file, which is archive independent, contains the date it was last
  366. modified and a list of devices, inode numbers and directory names.
  367. `tar' will archive files with newer mod dates or inode change times,
  368. and directories with an unchanged inode number and device but a changed
  369. directory name.  The file is updated after the files to be archived are
  370. determined, but before the new archive is actually created.
  371. File: tar.info,  Node: Inc Dumps,  Next: incremental and listed-incremental,  Prev: Full Dumps,  Up: Backups and Restoration
  372. Using `tar' to Perform Incremental Dumps
  373. ========================================
  374.      *(This message will disappear, once this node revised.)*
  375.    Performing incremental dumps is similar to performing full dumps,
  376. although a few more options will usually be needed.
  377.    You will need to use the `-N DATE' option to tell `tar' to only
  378. store files that have been modified since DATE.  DATE should be the
  379. date and time of the last full/incremental dump.
  380.    A standard scheme is to do a *monthly* (full) dump once a month, a
  381. *weekly* dump once a week of everything since the last monthly and a
  382. *daily* every day of everything since the last (weekly or monthly) dump.
  383.    Here is a copy of the script used to dump the filesystems of the
  384. machines here at the Free Software Foundation.  This script is run via
  385. `cron' late at night when people are least likely to be using the
  386. machines.  This script dumps several filesystems from several machines
  387. at once (via NFS).  The operator is responsible for ensuring that all
  388. the machines will be up at the time the dump happens.  If a machine is
  389. not running, its files will not be dumped, and the next day's
  390. incremental dump will *not* store files that would have gone onto that
  391. dump.
  392.      #!/bin/csh
  393.      # Dump thingie
  394.      set now = `date`
  395.      set then = `cat date.nfs.dump`
  396.      /u/hack/bin/tar -c -G -v\
  397.       -f /dev/rtu20\
  398.       -b 126\
  399.       -N "$then"\
  400.       -V "Dump from $then to $now"\
  401.       /alpha-bits/gp\
  402.       /gnu/hack\
  403.       /hobbes/u\
  404.       /spiff/u\
  405.       /sugar-bombs/u
  406.      echo $now > date.nfs.dump
  407.      mt -f /dev/rtu20 rew
  408.    Output from this script is stored in a file, for the operator to
  409. read later.
  410.    This script uses the file `date.nfs.dump' to store the date/time of
  411. the last dump.
  412.    Since this is a streaming tape drive, no attempt to verify the
  413. archive is done.  This is also why the high blocking factor (126) is
  414. used.  The tape drive must also be rewound by the `mt' command after
  415. the dump is made.
  416. File: tar.info,  Node: incremental and listed-incremental,  Next: Backup Levels,  Prev: Inc Dumps,  Up: Backups and Restoration
  417. The Incremental Options
  418. =======================
  419.      *(This message will disappear, once this node revised.)*
  420.    `--incremental' (`-G') is used in conjunction with `--create' (`-c'),
  421. `--extract' (`-x') or `--list' (`-t') when backing up and restoring file
  422. systems.  An archive cannot be extracted or listed with the
  423. `--incremental' (`-G') option specified unless it was created with the
  424. option specified.  This option should only be used by a script, not by
  425. the user, and is usually disregarded in favor of
  426. `--listed-incremental=SNAPSHOT-FILE' (`-g SNAPSHOT-FILE'), which is
  427. described below.
  428.    `--incremental' (`-G') in conjunction with `--create' (`-c') causes
  429. `tar' to write, at the beginning of the archive, an entry for each of
  430. the directories that will be archived.  The entry for a directory
  431. includes a list of all the files in the directory at the time the
  432. archive was created and a flag for each file indicating whether or not
  433. the file is going to be put in the archive.
  434.    Note that this option causes `tar' to create a non-standard archive
  435. that may not be readable by non-GNU versions of the `tar' program.
  436.    `--incremental' (`-G') in conjunction with `--extract' (`-x') causes
  437. `tar' to read the lists of directory contents previously stored in the
  438. archive, *delete* files in the file system that did not exist in their
  439. directories when the archive was created, and then extract the files in
  440. the archive.
  441.    This behavior is convenient when restoring a damaged file system from
  442. a succession of incremental backups: it restores the entire state of
  443. the file system to that which obtained when the backup was made.  If
  444. `--incremental' (`-G') isn't specified, the file system will probably
  445. fill up with files that shouldn't exist any more.
  446.    `--incremental' (`-G') in conjunction with `--list' (`-t'), causes
  447. `tar' to print, for each directory in the archive, the list of files in
  448. that directory at the time the archive was created.  This information
  449. is put out in a format that is not easy for humans to read, but which
  450. is unambiguous for a program: each file name is preceded by either a
  451. `Y' if the file is present in the archive, an `N' if the file is not
  452. included in the archive, or a `D' if the file is a directory (and is
  453. included in the archive).  Each file name is terminated by a null
  454. character.  The last file is followed by an additional null and a
  455. newline to indicate the end of the data.
  456.    `--listed-incremental=SNAPSHOT-FILE' (`-g SNAPSHOT-FILE') acts like
  457. `--incremental' (`-G'), but when used in conjunction with `--create'
  458. (`-c') will also cause `tar' to use the file SNAPSHOT-FILE, which
  459. contains information about the state of the file system at the time of
  460. the last backup, to decide which files to include in the archive being
  461. created.  That file will then be updated by `tar'.  If the file FILE
  462. does not exist when this option is specified, `tar' will create it, and
  463. include all appropriate files in the archive.
  464.    The file FILE, which is archive independent, contains the date it
  465. was last modified and a list of devices, inode numbers and directory
  466. names.  `tar' will archive files with newer mod dates or inode change
  467. times, and directories with an unchanged inode number and device but a
  468. changed directory name.  The file is updated after the files to be
  469. archived are determined, but before the new archive is actually created.
  470. FIXME: this section needs to be written
  471. File: tar.info,  Node: Backup Levels,  Next: Backup Parameters,  Prev: incremental and listed-incremental,  Up: Backups and Restoration
  472. Levels of Backups
  473. =================
  474.      *(This message will disappear, once this node revised.)*
  475.    An archive containing all the files in the file system is called a
  476. "full backup" or "full dump".  You could insure your data by creating a
  477. full dump every day.  This strategy, however, would waste a substantial
  478. amount of archive media and user time, as unchanged files are daily
  479. re-archived.
  480.    It is more efficient to do a full dump only occasionally.  To back up
  481. files between full dumps, you can a incremental dump.  A "level one"
  482. dump archives all the files that have changed since the last full dump.
  483.    A typical dump strategy would be to perform a full dump once a week,
  484. and a level one dump once a day.  This means some versions of files
  485. will in fact be archived more than once, but this dump strategy makes
  486. it possible to restore a file system to within one day of accuracy by
  487. only extracting two archives--the last weekly (full) dump and the last
  488. daily (level one) dump.  The only information lost would be in files
  489. changed or created since the last daily backup.  (Doing dumps more than
  490. once a day is usually not worth the trouble).
  491.    GNU `tar' comes with scripts you can use to do full and level-one
  492. dumps.  Using scripts (shell programs) to perform backups and
  493. restoration is a convenient and reliable alternative to typing out file
  494. name lists and `tar' commands by hand.
  495.    Before you use these scripts, you need to edit the file
  496. `backup-specs', which specifies parameters used by the backup scripts
  497. and by the restore script.
  498. FIXME: xref Script Syntax
  499.    .  Once the backup parameters are set, you can perform backups or
  500. restoration by running the appropriate script.
  501.    The name of the restore script is `restore'. The names of the level
  502. one and full backup scripts are, respectively, `level-1' and `level-0'.
  503. The `level-0' script also exists under the name `weekly', and the
  504. `level-1' under the name `daily'--these additional names can be changed
  505. according to your backup schedule.
  506. FIXME: xref Scripted Restoration
  507.    , for more information on running the restoration script.
  508. FIXME: xref Scripted Backups
  509.    , for more information on running the backup scripts.
  510.    *Please Note:* The backup scripts and the restoration scripts are
  511. designed to be used together.  While it is possible to restore files by
  512. hand from an archive which was created using a backup script, and to
  513. create an archive by hand which could then be extracted using the
  514. restore script, it is easier to use the scripts.
  515. FIXME: xref incremental
  516. and listed-incremental
  517.    , before making such an attempt.
  518. FIXME: shorten node names
  519. File: tar.info,  Node: Backup Parameters,  Next: Scripted Backups,  Prev: Backup Levels,  Up: Backups and Restoration
  520. Setting Parameters for Backups and Restoration
  521. ==============================================
  522.      *(This message will disappear, once this node revised.)*
  523.    The file `backup-specs' specifies backup parameters for the backup
  524. and restoration scripts provided with `tar'.  You must edit
  525. `backup-specs' to fit your system configuration and schedule before
  526. using these scripts.
  527. FIXME: This about backup scripts needs to be written: BS is a shell
  528. FIXME: script ....  thus ... `backup-specs' is in shell script
  529. FIXME: syntax.  xref Script Syntax, for an explanation of this syntax.
  530. FIXME:
  531. FIXME: whats a parameter ....  looked at by the backup scripts ... which
  532. FIXME: will be expecting to find ... now syntax ... value is linked to
  533. FIXME: lame ...  `backup-specs' specifies the following parameters:
  534. `ADMINISTRATOR'
  535.      The user name of the backup administrator.
  536. `BACKUP_HOUR'
  537.      The hour at which the backups are done.  This can be a number from
  538.      0 to 23, or the string `now'.
  539. `TAPE_FILE'
  540.      The device `tar' writes the archive to.  This device should be
  541.      attached to the host on which the dump scripts are run.
  542.      FIXME: examples for all  ...
  543. `TAPE_STATUS'
  544.      The command to use to obtain the status of the archive device,
  545.      including error count.  On some tape drives there may not be such a
  546.      command; in that case, simply use `TAPE_STATUS=false'.
  547. `BLOCKING'
  548.      The blocking factor `tar' will use when writing the dump archive.
  549.      FIXME: xref Blocking Factor
  550.      .
  551. `BACKUP_DIRS'
  552.      A list of file systems to be dumped.  You can include any directory
  553.      name in the list--subdirectories on that file system will be
  554.      included, regardless of how they may look to other networked
  555.      machines.  Subdirectories on other file systems will be ignored.
  556.      The host name specifies which host to run `tar' on, and should
  557.      normally be the host that actually contains the file system.
  558.      However, the host machine must have GNU `tar' installed, and must
  559.      be able to access the directory containing the backup scripts and
  560.      their support files using the same file name that is used on the
  561.      machine where the scripts are run (ie. what `pwd' will print when
  562.      in that directory on that machine).  If the host that contains the
  563.      file system does not have this capability, you can specify another
  564.      host as long as it can access the file system through NFS.
  565. `BACKUP_FILES'
  566.      A list of individual files to be dumped.  These should be
  567.      accessible from the machine on which the backup script is run.
  568.      FIXME: same file name, be specific.  through nfs ...
  569. * Menu:
  570. * backup-specs example::
  571. * Script Syntax::
  572. File: tar.info,  Node: backup-specs example,  Next: Script Syntax,  Prev: Backup Parameters,  Up: Backup Parameters
  573. An Example Text of `Backup-specs'
  574. ---------------------------------
  575.      *(This message will disappear, once this node revised.)*
  576.    The following is the text of `backup-specs' as it appears at FSF:
  577.      # site-specific parameters for file system backup.
  578.      
  579.      ADMINISTRATOR=friedman
  580.      BACKUP_HOUR=1
  581.      TAPE_FILE=/dev/nrsmt0
  582.      TAPE_STATUS="mts -t $TAPE_FILE"
  583.      BLOCKING=124
  584.      BACKUP_DIRS="
  585.          albert:/fs/fsf
  586.          apple-gunkies:/gd
  587.          albert:/fs/gd2
  588.          albert:/fs/gp
  589.          geech:/usr/jla
  590.          churchy:/usr/roland
  591.          albert:/
  592.          albert:/usr
  593.          apple-gunkies:/
  594.          apple-gunkies:/usr
  595.          gnu:/hack
  596.          gnu:/u
  597.          apple-gunkies:/com/mailer/gnu
  598.          apple-gunkies:/com/archive/gnu"
  599.      
  600.      BACKUP_FILES="/com/mailer/aliases /com/mailer/league*[a-z]"
  601. File: tar.info,  Node: Script Syntax,  Prev: backup-specs example,  Up: Backup Parameters
  602. Syntax for `Backup-specs'
  603. -------------------------
  604.      *(This message will disappear, once this node revised.)*
  605.    `backup-specs' is in shell script syntax.  The following conventions
  606. should be considered when editing the script:
  607. FIXME: "conventions?"
  608.    A quoted string is considered to be contiguous, even if it is on more
  609. than one line.  Therefore, you cannot include commented-out lines
  610. within a multi-line quoted string.  BACKUP_FILES and BACKUP_DIRS are
  611. the two most likely parameters to be multi-line.
  612.    A quoted string typically cannot contain wildcards.  In
  613. `backup-specs', however, the parameters BACKUP_DIRS and BACKUP_FILES
  614. can contain wildcards.
  615. File: tar.info,  Node: Scripted Backups,  Next: Scripted Restoration,  Prev: Backup Parameters,  Up: Backups and Restoration
  616. Using the Backup Scripts
  617. ========================
  618.      *(This message will disappear, once this node revised.)*
  619.    The syntax for running a backup script is:
  620.      `script-name' [TIME-TO-BE-RUN]
  621.    where TIME-TO-BE-RUN can be a specific system time, or can be `now'.
  622. If you do not specify a time, the script runs at the time specified in
  623. `backup-specs' (
  624. FIXME: pxref Script Syntax
  625.    ).
  626.    You should start a script with a tape or disk mounted.  Once you
  627. start a script, it prompts you for new tapes or disks as it needs them.
  628. Media volumes don't have to correspond to archive files--a multi-volume
  629. archive can be started in the middle of a tape that already contains
  630. the end of another multi-volume archive.  The `restore' script prompts
  631. for media by its archive volume, so to avoid an error message you
  632. should keep track of which tape (or disk) contains which volume of the
  633. archive.
  634. FIXME: xref Scripted Restoration
  635. FIXME: have file names changed?
  636.    The backup scripts write two files on the file system.  The first is
  637. a record file in `/etc/tar-backup/', which is used by the scripts to
  638. store and retrieve information about which files were dumped.  This
  639. file is not meant to be read by humans, and should not be deleted by
  640. them.
  641. FIXME: xref incremental and listed-incremental
  642.    , for a more detailed explanation of this file.
  643.    The second file is a log file containing the names of the file
  644. systems and files dumped, what time the backup was made, and any error
  645. messages that were generated, as well as how much space was left in the
  646. media volume after the last volume of the archive was written.  You
  647. should check this log file after every backup.  The file name is
  648. `log-MMM-DDD-YYYY-level-1' or `log-MMM-DDD-YYYY-full'.
  649.    The script also prints the name of each system being dumped to the
  650. standard output.
  651. FIXME: the section on restore scripts is commented out.
  652. FIXME: a section on non-scripted testore mya be a good idea
  653. File: tar.info,  Node: Scripted Restoration,  Prev: Scripted Backups,  Up: Backups and Restoration
  654. Using the Restore Script
  655. ========================
  656. FIXME: subject to change as things develop
  657.      *(This message will disappear, once this node revised.)*
  658.    (This node was @ignore'd--merely listing it for now.)
  659.    To restore files that were archived using a scripted backup, use the
  660. `restore' script.  The syntax for the script is:
  661.    where ***** are the file systems to restore from, and ***** is a
  662. regular expression which specifies which files to restore.  If you
  663. specify -all, the script restores all the files in the file system.
  664.    You should start the restore script with the media containing the
  665. first volume of the archive mounted.  The script will prompt for other
  666. volumes as they are needed.  If the archive is on tape, you don't need
  667. to rewind the tape to to its beginning--if the tape head is positioned
  668. past the beginning of the archive, the script will rewind the tape as
  669. needed.
  670. FIXME: xref Media
  671.    , for a discussion of tape positioning.
  672.    If you specify `--all' as the FILES argument, the `restore' script
  673. extracts all the files in the archived file system into the active file
  674. system.
  675.      *Warning:*The script will delete files from the active file system
  676.      if they were not in the file system when the archive was made.
  677. FIXME: xref incremental and listed-incremental
  678.    , for an explanation of how the script makes that determination.
  679. FIXME: this may be an option, not a given
  680. File: tar.info,  Node: Date input formats,  Next: Archive Format,  Prev: Backups and Restoration,  Up: Top
  681. Date input formats
  682. ******************
  683.    This section describes the textual date representations that GNU
  684. programs accept.  These are the strings you, as a user, can supply as
  685. arguments to the various programs.  The C interface (via the `getdate'
  686. function) is not described here.
  687.    Although the date syntax here can represent any possible time since
  688. zero A.D., computer integers are not big enough for such a
  689. (comparatively) long time.  The earliest date semantically allowed on
  690. Unix systems is midnight, 1 January 1970 UCT.
  691. * Menu:
  692. * General date syntax::
  693. * Calendar date item::
  694. * Time of day item::
  695. * Timezone item::
  696. * Day of week item::
  697. * Relative item in date strings::
  698. * Pure numbers in date strings::
  699. * Authors of getdate::
  700. File: tar.info,  Node: General date syntax,  Next: Calendar date item,  Prev: Date input formats,  Up: Date input formats
  701. General date syntax
  702. ===================
  703.    A "date" is a string, possibly empty, containing many items
  704. separated by whitespace.  The whitespace may be omitted when no
  705. ambiguity arises.  The empty string means the beginning of today (i.e.,
  706. midnight).  Order of the items is immaterial.  A date string may contain
  707. many flavors of items:
  708.    * calendar date items
  709.    * time of the day items
  710.    * time zone items
  711.    * day of the week items
  712.    * relative items
  713.    * pure numbers.
  714. We describe each of these item types in turn, below.
  715.    A few numbers may be written out in words in most contexts.  This is
  716. most useful for specifying day of the week items or relative items (see
  717. below).  Here is the list: `first' for 1, `next' for 2, `third' for 3,
  718. `fourth' for 4, `fifth' for 5, `sixth' for 6, `seventh' for 7, `eighth'
  719. for 8, `ninth' for 9, `tenth' for 10, `eleventh' for 11 and `twelfth'
  720. for 12.  Also, `last' means exactly -1.
  721.    When a month is written this way, it is still considered to be
  722. written numerically, instead of being "spelled in full"; this changes
  723. the allowed strings.
  724.    Alphabetic case is completely ignored in dates.  Comments may be
  725. introduced between round parentheses, as long as included parentheses
  726. are properly nested.  Hyphens not followed by a digit are currently
  727. ignored.  Leading zeros on numbers are ignored.
  728. File: tar.info,  Node: Calendar date item,  Next: Time of day item,  Prev: General date syntax,  Up: Date input formats
  729. Calendar date item
  730. ==================
  731.    A "calendar date item" specifies a day of the year.  It is specified
  732. differently, depending on whether the month is specified numerically or
  733. literally.  All these strings specify the same calendar date:
  734.      1970-9-17            # ISO 8601.
  735.      70-9-17              # This century assumed by default.
  736.      70-09-17             # Leading zeros are ignored.
  737.      9/17/72              # Common U.S. writing.
  738.      24 September 1972
  739.      24 Sept 72           # September has a special abbreviation.
  740.      24 Sep 72            # Three-letter abbreviations always allowed.
  741.      Sep 24, 1972
  742.      24-sep-72
  743.      24sep72
  744.    The year can also be omitted.  In this case, the last specified year
  745. is used, or the current year if none.  For example:
  746.      9/17
  747.      sep 17
  748.    Here are the rules.
  749.    For numeric months, the ISO 8601 format `YEAR-MONTH-DAY' is allowed,
  750. where YEAR is any positive number, MONTH is a number between 1 and 12,
  751. and DAY is a number between 1 and 31.  If YEAR is less than 100, then
  752. 1900 is added to it to force a date in this century.  The construct
  753. `MONTH/DAY/YEAR', popular in the United States, is accepted.  Also
  754. `MONTH/DAY', omitting the year.
  755.    Literal months may be spelled out in full: `January', `February',
  756. `March', `April', `May', `June', `July', `August', `September',
  757. `October', `November' or `December'.  Literal months may be abbreviated
  758. to their first three letters, possibly followed by an abbreviating dot.
  759. It is also permitted to write `Sept' instead of `September'.
  760.    When months are written literally, the calendar date may be given as
  761. any of the following:
  762.      DAY MONTH YEAR
  763.      DAY MONTH
  764.      MONTH DAY YEAR
  765.      DAY-MONTH-YEAR
  766.    Or, omitting the year:
  767.      MONTH DAY
  768. File: tar.info,  Node: Time of day item,  Next: Timezone item,  Prev: Calendar date item,  Up: Date input formats
  769. Time of day item
  770. ================
  771.    A "time of day item" in date strings specifies the time on a given
  772. day.  Here are some examples, all of which represent the same time:
  773.      20:02:0
  774.      20:02
  775.      8:02pm
  776.      20:02-0500      # In EST (Eastern U.S. Standard Time).
  777.    More generally, the time of the day may be given as
  778. `HOUR:MINUTE:SECOND', where HOUR is a number between 0 and 23, MINUTE
  779. is a number between 0 and 59, and SECOND is a number between 0 and 59.
  780. Alternatively, `:SECOND' can be omitted, in which case it is taken to
  781. be zero.
  782.    If the time is followed by `am' or `pm' (or `a.m.' or `p.m.'), HOUR
  783. is restricted to run from 1 to 12, and `:MINUTE' may be omitted (taken
  784. to be zero).  `am' indicates the first half of the day, `pm' indicates
  785. the second half of the day.  In this notation, 12 is the predecessor of
  786. 1: midnight is `12am' while noon is `12pm'.
  787.    The time may alternatively be followed by a timezone correction,
  788. expressed as `SHHMM', where S is `+' or `-', HH is a number of zone
  789. hours and MM is a number of zone minutes.  When a timezone correction
  790. is given this way, it forces interpretation of the time in UTC,
  791. overriding any previous specification for the timezone or the local
  792. timezone.  The MINUTE part of the time of the day may not be elided
  793. when a timezone correction is used.  This is the only way to specify a
  794. timezone correction by fractional parts of an hour.
  795.    Either `am'/`pm' or a timezone correction may be specified, but not
  796. both.
  797. File: tar.info,  Node: Timezone item,  Next: Day of week item,  Prev: Time of day item,  Up: Date input formats
  798. Timezone item
  799. =============
  800.    A "timezone item" specifies an international timezone, indicated by
  801. a small set of letters.  Any included period is ignored.  Military
  802. timezone designations use a single letter.  Currently, only integral
  803. zone hours may be represented in a timezone item.  See the previous
  804. section for a finer control over the timezone correction.
  805.    Here are many non-daylight-savings-time timezones, indexed by the
  806. zone hour value.
  807.      `GMT' for Greenwich Mean, `UT' or `UTC' for Universal
  808.      (Coordinated), `WET' for Western European and `Z' for militaries.
  809.      `WAT' for West Africa and `A' for militaries.
  810.      `AT' for Azores and `B' for militaries.
  811.      `C' for militaries.
  812.      `AST' for Atlantic Standard and `D' for militaries.
  813.      `E' for militaries and `EST' for Eastern Standard.
  814.      `CST' for Central Standard and `F' for militaries.
  815.      `G' for militaries and `MST' for Mountain Standard.
  816.      `H' for militaries and `PST' for Pacific Standard.
  817.      `I' for militaries and `YST' for Yukon Standard.
  818. +1000
  819.      `AHST' for Alaska-Hawaii Standard, `CAT' for Central Alaska, `HST'
  820.      for Hawaii Standard and `K' for militaries.
  821. +1100
  822.      `L' for militaries and `NT' for Nome.
  823. +1200
  824.      `IDLW' for International Date Line West and `M' for militaries.
  825.      `CET' for Central European, `FWT' for French Winter, `MET' for
  826.      Middle European, `MEWT' for Middle European Winter, `N' for
  827.      militaries and `SWT' for Swedish Winter.
  828.      `EET' for Eastern European, USSR Zone 1 and `O' for militaries.
  829.      `BT' for Baghdad, USSR Zone 2 and `P' for militaries.
  830.      `Q' for militaries and `ZP4' for USSR Zone 3.
  831.      `R' for militaries and `ZP5' for USSR Zone 4.
  832.      `S' for militaries and `ZP6' for USSR Zone 5.
  833.      `T' for militaries and `WAST' for West Australian Standard.
  834.      `CCT' for China Coast, USSR Zone 7 and `U' for militaries.
  835.      `JST' for Japan Standard, USSR Zone 8 and `V' for militaries.
  836. -1000
  837.      `EAST' for East Australian Standard, `GST' for Guam Standard, USSR
  838.      Zone 9 and `W' for militaries.
  839. -1100
  840.      `X' for militaries.
  841. -1200
  842.      `IDLE' for International Date Line East, `NZST' for New Zealand
  843.      Standard, `NZT' for New Zealand and `Y' for militaries.
  844.    Here are many DST timezones, indexed by the zone hour value.  Also,
  845. by following a non-DST timezone by the string `DST' in a separate word
  846. (that is, separated by some whitespace), the corresponding DST timezone
  847. may be specified.
  848.      `BST' for British Summer.
  849.      `ADT' for Atlantic Daylight.
  850.      `EDT' for Eastern Daylight.
  851.      `CDT' for Central Daylight.
  852.      `MDT' for Mountain Daylight.
  853.      `PDT' for Pacific Daylight.
  854.      `YDT' for Yukon Daylight.
  855. +1000
  856.      `HDT' for Hawaii Daylight.
  857.      `MEST' for Middle European Summer, `MESZ' for Middle European
  858.      Summer, `SST' for Swedish Summer and `FST' for French Summer.
  859.      `WADT' for West Australian Daylight.
  860. -1000
  861.      `EADT' for Eastern Australian Daylight.
  862. -1200
  863.      `NZDT' for New Zealand Daylight.
  864. File: tar.info,  Node: Day of week item,  Next: Relative item in date strings,  Prev: Timezone item,  Up: Date input formats
  865. Day of week item
  866. ================
  867.    The explicit mention of a day of the week will forward the date
  868. (only if necessary) to reach that day of the week in the future.
  869.    Days of the week may be spelled out in full: `Sunday', `Monday',
  870. `Tuesday', `Wednesday', `Thursday', `Friday' or `Saturday'.  Days may
  871. be abbreviated to their first three letters, optionally followed by a
  872. period.  The special abbreviations `Tues' for `Tuesday', `Wednes' for
  873. `Wednesday' and `Thur' or `Thurs' for `Thursday' are also allowed.
  874.    A number may precede a day of the week item to move forward
  875. supplementary weeks.  It is best used in expression like `third
  876. monday'.  In this context, `last DAY' or `next DAY' is also acceptable;
  877. they move one week before or after the day that DAY by itself would
  878. represent.
  879.    A comma following a day of the week item is ignored.
  880. File: tar.info,  Node: Relative item in date strings,  Next: Pure numbers in date strings,  Prev: Day of week item,  Up: Date input formats
  881. Relative item in date strings
  882. =============================
  883.    "Relative items" adjust a date (or the current date if none) forward
  884. or backward.  The effect of relative items accumulate.  Here are some
  885. examples:
  886.      1 year
  887.      1 year ago
  888.      3 years
  889.      2 days
  890.    The unit of time displacement may be selected by the string `year'
  891. or `month' for moving by whole years or months.  These are fuzzy units,
  892. as years and months are not all of equal duration.  More precise units
  893. are `fortnight' which is worth 14 days, `week' worth 7 days, `day'
  894. worth 24 hours, `hour' worth 60 minutes, `minute' or `min' worth 60
  895. seconds, and `second' or `sec' worth one second.  An `s' suffix on
  896. these units is accepted and ignored.
  897.    The unit of time may be preceded by a multiplier, given as an
  898. optionally signed number.  Unsigned numbers are taken as positively
  899. signed.  No number at all implies 1 for a multiplier.  Following a
  900. relative item by the string `ago' is equivalent to preceding the unit
  901. by a multiplicator with value -1.
  902.    The string `tomorrow' is worth one day in the future (equivalent to
  903. `day'), the string `yesterday' is worth one day in the past (equivalent
  904. to `day ago').
  905.    The strings `now' or `today' are relative items corresponding to
  906. zero-valued time displacement, these strings come from the fact a
  907. zero-valued time displacement represents the current time when not
  908. otherwise change by previous items.  They may be used to stress other
  909. items, like in `12:00 today'.  The string `this' also has the meaning
  910. of a zero-valued time displacement, but is preferred in date strings
  911. like `this thursday'.
  912.    When a relative item makes the resulting date to cross the boundary
  913. between DST and non-DST (or vice-versa), the hour is adjusted according
  914. to the local time.
  915. File: tar.info,  Node: Pure numbers in date strings,  Next: Authors of getdate,  Prev: Relative item in date strings,  Up: Date input formats
  916. Pure numbers in date strings
  917. ============================
  918.    The precise intepretation of a pure decimal number is dependent of
  919. the context in the date string.
  920.    If the decimal number is of the form YYYYMMDD and no other calendar
  921. date item (
  922. FIXME: pxref Calendar date item
  923.    ) appears before it in the date string, then YYYY is read as the
  924. year, MM as the month number and DD as the day of the month, for the
  925. specified calendar date.
  926.    If the decimal number is of the form HHMM and no other time of day
  927. item appears before it in the date string, then HH is read as the hour
  928. of the day and MM as the minute of the hour, for the specified time of
  929. the day.  MM can also be omitted.
  930.    If both a calendar date and a time of day appear to the left of a
  931. number in the date string, but no relative item, then the number
  932. overrides the year.
  933. File: tar.info,  Node: Authors of getdate,  Prev: Pure numbers in date strings,  Up: Date input formats
  934. Authors of `getdate'
  935. ====================
  936.    `getdate' was originally implemented by Steven M. Bellovin
  937. (`smb@research.att.com') while at the University of North Carolina at
  938. Chapel Hill.  The code was later tweaked by a couple of people on
  939. Usenet, then completely overhauled by Rich $alz (`rsalz@bbn.com') and
  940. Jim Berets (`jberets@bbn.com') in August, 1990.  Various revisions for
  941. the GNU system were made by David MacKenzie, Jim Meyering, and others.
  942.    This chapter was originally produced by Franc,ois Pinard
  943. (`pinard@iro.umontreal.ca') from the `getdate.y' source code, and then
  944. edited by K. Berry (`kb@cs.umb.edu').
  945. File: tar.info,  Node: Archive Format,  Next: Index,  Prev: Date input formats,  Up: Top
  946. Format of `tar' archives
  947. ************************
  948.      *(This message will disappear, once this node revised.)*
  949. * Menu:
  950. * Standard::
  951. * Extensions::
  952. * cpio::
  953.