-creates an archive with one entry for `grape', and the recursive
-contents of `grape/concord', but no entries under `grape' other than
-`grape/concord'.
-
-\1f
-File: tar.info, Node: one, Prev: recurse, Up: Choosing
-
-6.10 Crossing File System Boundaries
-====================================
-
-`tar' will normally automatically cross file system boundaries in order
-to archive files which are part of a directory tree. You can change
-this behavior by running `tar' and specifying `--one-file-system'.
-This option only affects files that are archived because they are in a
-directory that is being archived; `tar' will still archive files
-explicitly named on the command line or through `--files-from',
-regardless of where they reside.
-
-`--one-file-system'
- Prevents `tar' from crossing file system boundaries when
- archiving. Use in conjunction with any write operation.
-
- The `--one-file-system' option causes `tar' to modify its normal
-behavior in archiving the contents of directories. If a file in a
-directory is not on the same file system as the directory itself, then
-`tar' will not archive that file. If the file is a directory itself,
-`tar' will not archive anything beneath it; in other words, `tar' will
-not cross mount points.
-
- This option is useful for making full or incremental archival
-backups of a file system. If this option is used in conjunction with
-`--verbose' (`-v'), files that are excluded are mentioned by name on
-the standard error.
-
-* Menu:
-
-* directory:: Changing Directory
-* absolute:: Absolute File Names
-
-\1f
-File: tar.info, Node: directory, Next: absolute, Up: one
-
-6.10.1 Changing the Working Directory
--------------------------------------
-
-To change the working directory in the middle of a list of file names,
-either on the command line or in a file specified using `--files-from'
-(`-T'), use `--directory' (`-C'). This will change the working
-directory to the specified directory after that point in the list.
-
-`--directory=DIRECTORY'
-`-C DIRECTORY'
- Changes the working directory in the middle of a command line.
-
- For example,
-
- $ tar -c -f jams.tar grape prune -C food cherry
-
-will place the files `grape' and `prune' from the current directory
-into the archive `jams.tar', followed by the file `cherry' from the
-directory `food'. This option is especially useful when you have
-several widely separated files that you want to store in the same
-archive.
-
- Note that the file `cherry' is recorded in the archive under the
-precise name `cherry', _not_ `food/cherry'. Thus, the archive will
-contain three files that all appear to have come from the same
-directory; if the archive is extracted with plain `tar --extract', all
-three files will be written in the current directory.
-
- Contrast this with the command,
-
- $ tar -c -f jams.tar grape prune -C food red/cherry
-
-which records the third file in the archive under the name `red/cherry'
-so that, if the archive is extracted using `tar --extract', the third
-file will be written in a subdirectory named `red'.
-
- You can use the `--directory' option to make the archive independent
-of the original name of the directory holding the files. The following
-command places the files `/etc/passwd', `/etc/hosts', and `/lib/libc.a'
-into the archive `foo.tar':
-
- $ tar -c -f foo.tar -C /etc passwd hosts -C /lib libc.a
-
-However, the names of the archive members will be exactly what they were
-on the command line: `passwd', `hosts', and `libc.a'. They will not
-appear to be related by file name to the original directories where
-those files were located.
-
- Note that `--directory' options are interpreted consecutively. If
-`--directory' specifies a relative file name, it is interpreted
-relative to the then current directory, which might not be the same as
-the original current working directory of `tar', due to a previous
-`--directory' option.
-
- When using `--files-from' (*note files::), you can put various `tar'
-options (including `-C') in the file list. Notice, however, that in
-this case the option and its argument may not be separated by
-whitespace. If you use short option, its argument must either follow
-the option letter immediately, without any intervening whitespace, or
-occupy the next line. Otherwise, if you use long option, separate its
-argument by an equal sign.
-
- For instance, the file list for the above example will be:
-
- -C/etc
- passwd
- hosts
- --directory=/lib
- libc.a
-
-To use it, you would invoke `tar' as follows:
-
- $ tar -c -f foo.tar --files-from list
-
- The interpretation of `--directory' is disabled by `--null' option.
-
-\1f
-File: tar.info, Node: absolute, Prev: directory, Up: one
-
-6.10.2 Absolute File Names
---------------------------
-
-By default, GNU `tar' drops a leading `/' on input or output, and
-complains about file names containing a `..' component. There is an
-option that turns off this behavior:
-
-`--absolute-names'
-`-P'
- Do not strip leading slashes from file names, and permit file names
- containing a `..' file name component.
-
- When `tar' extracts archive members from an archive, it strips any
-leading slashes (`/') from the member name. This causes absolute
-member names in the archive to be treated as relative file names. This
-allows you to have such members extracted wherever you want, instead of
-being restricted to extracting the member in the exact directory named
-in the archive. For example, if the archive member has the name
-`/etc/passwd', `tar' will extract it as if the name were really
-`etc/passwd'.
-
- File names containing `..' can cause problems when extracting, so
-`tar' normally warns you about such files when creating an archive, and
-rejects attempts to extracts such files.
-
- Other `tar' programs do not do this. As a result, if you create an
-archive whose member names start with a slash, they will be difficult
-for other people with a non-GNU `tar' program to use. Therefore, GNU
-`tar' also strips leading slashes from member names when putting
-members into the archive. For example, if you ask `tar' to add the file
-`/bin/ls' to an archive, it will do so, but the member name will be
-`bin/ls'(1).
-
- Symbolic links containing `..' or leading `/' can also cause
-problems when extracting, so `tar' normally extracts them last; it may
-create empty files as placeholders during extraction.
-
- If you use the `--absolute-names' (`-P') option, `tar' will do none
-of these transformations.
-
- To archive or extract files relative to the root directory, specify
-the `--absolute-names' (`-P') option.
-
- Normally, `tar' acts on files relative to the working
-directory--ignoring superior directory names when archiving, and
-ignoring leading slashes when extracting.
-
- When you specify `--absolute-names' (`-P'), `tar' stores file names
-including all superior directory names, and preserves leading slashes.
-If you only invoked `tar' from the root directory you would never need
-the `--absolute-names' option, but using this option may be more
-convenient than switching to root.
-
-`--absolute-names'
- Preserves full file names (including superior directory names) when
- archiving and extracting files.
-
-
- `tar' prints out a message about removing the `/' from file names.
-This message appears once per GNU `tar' invocation. It represents
-something which ought to be told; ignoring what it means can cause very
-serious surprises, later.
-
- Some people, nevertheless, do not want to see this message. Wanting
-to play really dangerously, one may of course redirect `tar' standard
-error to the sink. For example, under `sh':
-
- $ tar -c -f archive.tar /home 2> /dev/null
-
-Another solution, both nicer and simpler, would be to change to the `/'
-directory first, and then avoid absolute notation. For example:
-
- $ tar -c -f archive.tar -C / home
-
- *Note Integrity::, for some of the security-related implications of
-using this option.
-
- ---------- Footnotes ----------
-
- (1) A side effect of this is that when `--create' is used with
-`--verbose' the resulting output is not, generally speaking, the same
-as the one you'd get running `tar --list' command. This may be
-important if you use some scripts for comparing both outputs. *Note
-listing member and file names::, for the information on how to handle
-this case.
-
-\1f
-File: tar.info, Node: Date input formats, Next: Formats, Prev: Choosing, Up: Top
-
-7 Date input formats
-********************
-
-First, a quote:
-
- Our units of temporal measurement, from seconds on up to months,
- are so complicated, asymmetrical and disjunctive so as to make
- coherent mental reckoning in time all but impossible. Indeed, had
- some tyrannical god contrived to enslave our minds to time, to
- make it all but impossible for us to escape subjection to sodden
- routines and unpleasant surprises, he could hardly have done
- better than handing down our present system. It is like a set of
- trapezoidal building blocks, with no vertical or horizontal
- surfaces, like a language in which the simplest thought demands
- ornate constructions, useless particles and lengthy
- circumlocutions. Unlike the more successful patterns of language
- and science, which enable us to face experience boldly or at least
- level-headedly, our system of temporal calculation silently and
- persistently encourages our terror of time.
-
- ... It is as though architects had to measure length in feet,
- width in meters and height in ells; as though basic instruction
- manuals demanded a knowledge of five different languages. It is
- no wonder then that we often look into our own immediate past or
- future, last Tuesday or a week from Sunday, with feelings of
- helpless confusion. ...
-
- --Robert Grudin, `Time and the Art of Living'.
-
- This section describes the textual date representations that GNU
-programs accept. These are the strings you, as a user, can supply as
-arguments to the various programs. The C interface (via the
-`parse_datetime' function) is not described here.
-
-* Menu:
-
-* General date syntax:: Common rules.
-* Calendar date items:: 19 Dec 1994.
-* Time of day items:: 9:20pm.
-* Time zone items:: EST, PDT, UTC, ...
-* Combined date and time of day items:: 1972-09-24T20:02:00,000000-0500.
-* Day of week items:: Monday and others.
-* Relative items in date strings:: next tuesday, 2 years ago.
-* Pure numbers in date strings:: 19931219, 1440.
-* Seconds since the Epoch:: @1078100502.
-* Specifying time zone rules:: TZ="America/New_York", TZ="UTC0".
-* Authors of parse_datetime:: Bellovin, Eggert, Salz, Berets, et al.
-
-\1f
-File: tar.info, Node: General date syntax, Next: Calendar date items, Up: Date input formats
-
-7.1 General date syntax
-=======================
-
-A "date" is a string, possibly empty, containing many items separated
-by whitespace. The whitespace may be omitted when no ambiguity arises.
-The empty string means the beginning of today (i.e., midnight). Order
-of the items is immaterial. A date string may contain many flavors of
-items:
-
- * calendar date items
-
- * time of day items
-
- * time zone items
-
- * combined date and time of day items
-
- * day of the week items
-
- * relative items
-
- * pure numbers.
-
-We describe each of these item types in turn, below.
-
- A few ordinal numbers may be written out in words in some contexts.
-This is most useful for specifying day of the week items or relative
-items (see below). Among the most commonly used ordinal numbers, the
-word `last' stands for -1, `this' stands for 0, and `first' and `next'
-both stand for 1. Because the word `second' stands for the unit of
-time there is no way to write the ordinal number 2, but for convenience
-`third' stands for 3, `fourth' for 4, `fifth' for 5, `sixth' for 6,
-`seventh' for 7, `eighth' for 8, `ninth' for 9, `tenth' for 10,
-`eleventh' for 11 and `twelfth' for 12.
-
- When a month is written this way, it is still considered to be
-written numerically, instead of being "spelled in full"; this changes
-the allowed strings.
-
- In the current implementation, only English is supported for words
-and abbreviations like `AM', `DST', `EST', `first', `January',
-`Sunday', `tomorrow', and `year'.
-
- The output of the `date' command is not always acceptable as a date
-string, not only because of the language problem, but also because
-there is no standard meaning for time zone items like `IST'. When using
-`date' to generate a date string intended to be parsed later, specify a
-date format that is independent of language and that does not use time
-zone items other than `UTC' and `Z'. Here are some ways to do this:
-
- $ LC_ALL=C TZ=UTC0 date
- Mon Mar 1 00:21:42 UTC 2004
- $ TZ=UTC0 date +'%Y-%m-%d %H:%M:%SZ'
- 2004-03-01 00:21:42Z
- $ date --rfc-3339=ns # --rfc-3339 is a GNU extension.
- 2004-02-29 16:21:42.692722128-08:00
- $ date --rfc-2822 # a GNU extension
- Sun, 29 Feb 2004 16:21:42 -0800
- $ date +'%Y-%m-%d %H:%M:%S %z' # %z is a GNU extension.
- 2004-02-29 16:21:42 -0800
- $ date +'@%s.%N' # %s and %N are GNU extensions.
- @1078100502.692722128
-
- Alphabetic case is completely ignored in dates. Comments may be
-introduced between round parentheses, as long as included parentheses
-are properly nested. Hyphens not followed by a digit are currently
-ignored. Leading zeros on numbers are ignored.
-
- Invalid dates like `2005-02-29' or times like `24:00' are rejected.
-In the typical case of a host that does not support leap seconds, a
-time like `23:59:60' is rejected even if it corresponds to a valid leap
-second.
-
-\1f
-File: tar.info, Node: Calendar date items, Next: Time of day items, Prev: General date syntax, Up: Date input formats
-
-7.2 Calendar date items
-=======================
-
-A "calendar date item" specifies a day of the year. It is specified
-differently, depending on whether the month is specified numerically or
-literally. All these strings specify the same calendar date:
-
- 1972-09-24 # ISO 8601.
- 72-9-24 # Assume 19xx for 69 through 99,
- # 20xx for 00 through 68.
- 72-09-24 # Leading zeros are ignored.
- 9/24/72 # Common U.S. writing.
- 24 September 1972
- 24 Sept 72 # September has a special abbreviation.
- 24 Sep 72 # Three-letter abbreviations always allowed.
- Sep 24, 1972
- 24-sep-72
- 24sep72
-
- The year can also be omitted. In this case, the last specified year
-is used, or the current year if none. For example:
-
- 9/24
- sep 24
-
- Here are the rules.
-
- For numeric months, the ISO 8601 format `YEAR-MONTH-DAY' is allowed,
-where YEAR is any positive number, MONTH is a number between 01 and 12,
-and DAY is a number between 01 and 31. A leading zero must be present
-if a number is less than ten. If YEAR is 68 or smaller, then 2000 is
-added to it; otherwise, if YEAR is less than 100, then 1900 is added to
-it. The construct `MONTH/DAY/YEAR', popular in the United States, is
-accepted. Also `MONTH/DAY', omitting the year.
-
- Literal months may be spelled out in full: `January', `February',
-`March', `April', `May', `June', `July', `August', `September',
-`October', `November' or `December'. Literal months may be abbreviated
-to their first three letters, possibly followed by an abbreviating dot.
-It is also permitted to write `Sept' instead of `September'.
-
- When months are written literally, the calendar date may be given as
-any of the following:
-
- DAY MONTH YEAR
- DAY MONTH
- MONTH DAY YEAR
- DAY-MONTH-YEAR
-
- Or, omitting the year:
-
- MONTH DAY