Update
This commit is contained in:
213
doc/tar.texi
213
doc/tar.texi
@@ -2593,8 +2593,9 @@ code. @xref{Writing to an External Program}.
|
|||||||
|
|
||||||
@opindex no-quote-chars, summary
|
@opindex no-quote-chars, summary
|
||||||
@item --no-quote-chars=@var{string}
|
@item --no-quote-chars=@var{string}
|
||||||
Do not quote characters from @var{string}, even if the selected
|
Remove characters listed in @var{string} from the list of quoted
|
||||||
quoting style implies they should be quoted (@pxref{quoting styles}).
|
characters set by the previous @option{--quote-chars} option
|
||||||
|
(@pxref{quoting styles}).
|
||||||
|
|
||||||
@opindex no-recursion, summary
|
@opindex no-recursion, summary
|
||||||
@item --no-recursion
|
@item --no-recursion
|
||||||
@@ -2713,6 +2714,25 @@ anonymous anyway, so that might as well be the owner of anonymous archives.
|
|||||||
|
|
||||||
This option does not affect extraction from archives.
|
This option does not affect extraction from archives.
|
||||||
|
|
||||||
|
@opindex transform, summary
|
||||||
|
@item --transform=@var{sed-expr}
|
||||||
|
|
||||||
|
Transform file or member names using @command{sed} replacement expression
|
||||||
|
@var{sed-expr}. For example,
|
||||||
|
|
||||||
|
@smallexample
|
||||||
|
$ @kbd{tar cf archive.tar --transform 's,^\./,usr/,' .}
|
||||||
|
@end smallexample
|
||||||
|
|
||||||
|
@noindent
|
||||||
|
will add to @file{archive} files from the current working directory,
|
||||||
|
replacing initial @samp{./} prefix with @samp{usr/}. For the detailed
|
||||||
|
discussion, see @FIXME-xref{transform}
|
||||||
|
|
||||||
|
To see transformed member names in verbose listings, use
|
||||||
|
@option{--show-transformed-names} option
|
||||||
|
(@FIXME-pxref{show-transformed-names}).
|
||||||
|
|
||||||
@opindex quote-chars, summary
|
@opindex quote-chars, summary
|
||||||
@item --quote-chars=@var{string}
|
@item --quote-chars=@var{string}
|
||||||
Always quote characters from @var{string}, even if the selected
|
Always quote characters from @var{string}, even if the selected
|
||||||
@@ -2963,11 +2983,14 @@ $ tar --show-defaults
|
|||||||
Instructs @command{tar} to mention directories its skipping over when
|
Instructs @command{tar} to mention directories its skipping over when
|
||||||
operating on a @command{tar} archive. @xref{show-omitted-dirs}.
|
operating on a @command{tar} archive. @xref{show-omitted-dirs}.
|
||||||
|
|
||||||
|
@opindex show-transformed-names, summary
|
||||||
@opindex show-stored-names, summary
|
@opindex show-stored-names, summary
|
||||||
@item --show-stored-names
|
@item --show-transformed-names
|
||||||
|
@itemx --show-stored-names
|
||||||
|
|
||||||
This option has effect only when used in conjunction with one of
|
Display file or member names after applying any transformations
|
||||||
archive creation operations. It instructs tar to list the member names
|
(@FIXME-pxref{}). In particular, when used in conjunction with one of
|
||||||
|
archive creation operations it instructs tar to list the member names
|
||||||
stored in the archive, as opposed to the actual file
|
stored in the archive, as opposed to the actual file
|
||||||
names. @xref{listing member and file names}.
|
names. @xref{listing member and file names}.
|
||||||
|
|
||||||
@@ -4173,13 +4196,81 @@ blues
|
|||||||
tar: funk not found in archive
|
tar: funk not found in archive
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
The spirit behind the @option{--compare} (@option{--diff}, @option{-d}) option is to check whether the
|
The spirit behind the @option{--compare} (@option{--diff},
|
||||||
archive represents the current state of files on disk, more than validating
|
@option{-d}) option is to check whether the archive represents the
|
||||||
the integrity of the archive media. For this later goal, @xref{verify}.
|
current state of files on disk, more than validating the integrity of
|
||||||
|
the archive media. For this later goal, @xref{verify}.
|
||||||
|
|
||||||
@node quoting styles
|
@node quoting styles
|
||||||
@subsection Quoting Member Names
|
@subsection Quoting Member Names
|
||||||
@UNREVISED{}
|
|
||||||
|
When displaying member names, @command{tar} takes care to avoid
|
||||||
|
ambiguities caused by certain characters. This is called @dfn{name
|
||||||
|
quoting}. The characters in question are:
|
||||||
|
|
||||||
|
@itemize @bullet
|
||||||
|
@item Non-printable control characters:
|
||||||
|
|
||||||
|
@multitable @columnfractions 0.20 0.10 0.60
|
||||||
|
@headitem Character @tab ASCII @tab Character name
|
||||||
|
@item \a @tab 7 @tab Audible bell
|
||||||
|
@item \b @tab 8 @tab Backspace
|
||||||
|
@item \f @tab 12 @tab Form feed
|
||||||
|
@item \n @tab 10 @tab New line
|
||||||
|
@item \r @tab 13 @tab Carriage return
|
||||||
|
@item \t @tab 9 @tab Horizontal tabulation
|
||||||
|
@item \v @tab 11 @tab Vertical tabulation
|
||||||
|
@end multitable
|
||||||
|
|
||||||
|
@item Space (ASCII 32)
|
||||||
|
|
||||||
|
@item Single and double quotes (@samp{'} and @samp{"})
|
||||||
|
|
||||||
|
@item Backslash (@samp{\})
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
The exact way @command{tar} uses to quote these characters depends on
|
||||||
|
the @dfn{quoting style}. The default quoting style, called
|
||||||
|
@dfn{escape} (see below), uses backslash notation to represent control
|
||||||
|
characters, space and backslash. Using this quoting style, control
|
||||||
|
characters are represented as listed in column @samp{Character} in the
|
||||||
|
above table, a space is printed as @samp{\ } and a backslash as @samp{\\}.
|
||||||
|
|
||||||
|
@GNUTAR{} offers seven distinct quoting styles, which can be selected
|
||||||
|
using @option{--quoting-style} option:
|
||||||
|
|
||||||
|
@table @option
|
||||||
|
@item --quoting-style=@var{style}
|
||||||
|
@opindex quoting-style
|
||||||
|
|
||||||
|
Sets quoting style. Valid values for @var{style} argument are:
|
||||||
|
literal, shell, shell-always, c, escape, locale, clocale.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
These styles are described in detail below. To illustrate their
|
||||||
|
effect, we will use an imaginary tar archive @file{arch.tar}
|
||||||
|
containing the following members:
|
||||||
|
|
||||||
|
@smallexample
|
||||||
|
@group
|
||||||
|
# 1. Contains horizontal tabulation character.
|
||||||
|
a tab
|
||||||
|
# 2. Contains newline character
|
||||||
|
a
|
||||||
|
newline
|
||||||
|
# 3. Contains a space
|
||||||
|
a space
|
||||||
|
# 4. Contains double quotes
|
||||||
|
a"double"quote
|
||||||
|
# 5. Contains single quotes
|
||||||
|
a'single'quote
|
||||||
|
# 6. Contains a backslash character:
|
||||||
|
a\backslash
|
||||||
|
@end group
|
||||||
|
@end smallexample
|
||||||
|
|
||||||
|
Here is how usual @command{ls} command would have listed them, if they
|
||||||
|
had existed in the current working directory:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
@group
|
@group
|
||||||
@@ -4190,13 +4281,18 @@ a\ space
|
|||||||
a"double"quote
|
a"double"quote
|
||||||
a'single'quote
|
a'single'quote
|
||||||
a\\backslash
|
a\\backslash
|
||||||
$ @kbd{tar cf arch .}
|
|
||||||
@end group
|
@end group
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
Quoting styles:
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
@item literal
|
||||||
|
No quoting, display each character as is:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
@group
|
@group
|
||||||
$ @kbd{tar tf arch --quoting-style=literal}
|
$ @kbd{tar tf arch.tar --quoting-style=literal}
|
||||||
./
|
./
|
||||||
./a space
|
./a space
|
||||||
./a'single'quote
|
./a'single'quote
|
||||||
@@ -4208,9 +4304,17 @@ newline
|
|||||||
@end group
|
@end group
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
@item shell
|
||||||
|
Display characters the same way Bourne shell does:
|
||||||
|
control characters, except @samp{\t} and @samp{\n}, are printed using
|
||||||
|
backslash escapes, @samp{\t} and @samp{\n} are printed as is, and a
|
||||||
|
single quote is printed as @samp{\'}. If a name contains any quoted
|
||||||
|
characters, it is enclosed in single quotes. In particular, if a name
|
||||||
|
contains single quotes, it is printed as several single-quoted strings:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
@group
|
@group
|
||||||
$ @kbd{tar tf arch --quoting-style=shell}
|
$ @kbd{tar tf arch.tar --quoting-style=shell}
|
||||||
./
|
./
|
||||||
'./a space'
|
'./a space'
|
||||||
'./a'\''single'\''quote'
|
'./a'\''single'\''quote'
|
||||||
@@ -4222,9 +4326,13 @@ newline'
|
|||||||
@end group
|
@end group
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
@item shell-always
|
||||||
|
Same as @samp{shell}, but the names are always enclosed in single
|
||||||
|
quotes:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
@group
|
@group
|
||||||
$ @kbd{tar tf arch --quoting-style=shell-always}
|
$ @kbd{tar tf arch.tar --quoting-style=shell-always}
|
||||||
'./'
|
'./'
|
||||||
'./a space'
|
'./a space'
|
||||||
'./a'\''single'\''quote'
|
'./a'\''single'\''quote'
|
||||||
@@ -4236,9 +4344,16 @@ newline'
|
|||||||
@end group
|
@end group
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
@item c
|
||||||
|
Use the notation of the C programming language. All names are
|
||||||
|
enclosed in double quotes. Control characters are quoted using
|
||||||
|
backslash notations, double quotes are represented as @samp{\"},
|
||||||
|
backslash characters are represented as @samp{\\}. Single quotes and
|
||||||
|
spaces are not quoted:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
@group
|
@group
|
||||||
$ @kbd{tar tf arch --quoting-style=c}
|
$ @kbd{tar tf arch.tar --quoting-style=c}
|
||||||
"./"
|
"./"
|
||||||
"./a space"
|
"./a space"
|
||||||
"./a'single'quote"
|
"./a'single'quote"
|
||||||
@@ -4249,9 +4364,15 @@ $ @kbd{tar tf arch --quoting-style=c}
|
|||||||
@end group
|
@end group
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
@item escape
|
||||||
|
Control characters are printed using backslash notation, a space is
|
||||||
|
printed as @samp{\ } and a backslash as @samp{\\}. This is the
|
||||||
|
default quoting style, unless it was changed when configured the
|
||||||
|
package.
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
@group
|
@group
|
||||||
$ @kbd{tar tf arch --quoting-style=escape}
|
$ @kbd{tar tf arch.tar --quoting-style=escape}
|
||||||
./
|
./
|
||||||
./a space
|
./a space
|
||||||
./a'single'quote
|
./a'single'quote
|
||||||
@@ -4262,9 +4383,19 @@ $ @kbd{tar tf arch --quoting-style=escape}
|
|||||||
@end group
|
@end group
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
@item locale
|
||||||
|
Control characters, single quote and backslash are printed using
|
||||||
|
backslash notation. All names are quoted using left and right
|
||||||
|
quotation marks, appropriate to the current locale. If it does not
|
||||||
|
define quotation marks, use @samp{`} as left and @samp{'} as right
|
||||||
|
quotation marks. Any occurrences of the right quotation mark in a
|
||||||
|
name are escaped with @samp{\}, for example:
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
@group
|
@group
|
||||||
$ @kbd{tar tf arch --quoting-style=locale}
|
$ @kbd{tar tf arch.tar --quoting-style=locale}
|
||||||
`./'
|
`./'
|
||||||
`./a space'
|
`./a space'
|
||||||
`./a\'single\'quote'
|
`./a\'single\'quote'
|
||||||
@@ -4275,9 +4406,13 @@ $ @kbd{tar tf arch --quoting-style=locale}
|
|||||||
@end group
|
@end group
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
@item clocale
|
||||||
|
Same as @samp{locale}, but @samp{"} is used for both left and right
|
||||||
|
quotation marks, if not provided by the currently selected locale:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
@group
|
@group
|
||||||
$ @kbd{tar tf arch --quoting-style=clocale}
|
$ @kbd{tar tf arch.tar --quoting-style=clocale}
|
||||||
"./"
|
"./"
|
||||||
"./a space"
|
"./a space"
|
||||||
"./a'single'quote"
|
"./a'single'quote"
|
||||||
@@ -4287,6 +4422,48 @@ $ @kbd{tar tf arch --quoting-style=clocale}
|
|||||||
"./a\nnewline"
|
"./a\nnewline"
|
||||||
@end group
|
@end group
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
@end table
|
||||||
|
|
||||||
|
You can specify which characters should be quoted in addition to those
|
||||||
|
implied by the current quoting style:
|
||||||
|
|
||||||
|
@table @option
|
||||||
|
@item --quote-chars=@var{string}
|
||||||
|
Always quote characters from @var{string}, even if the selected
|
||||||
|
quoting style would not quote them.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
For example, using @samp{escape} quoting (compare with the usual
|
||||||
|
escape listing above):
|
||||||
|
|
||||||
|
@smallexample
|
||||||
|
@group
|
||||||
|
$ @kbd{tar tf arch.tar --quoting-style=escape --quote-chars=' "'}
|
||||||
|
./
|
||||||
|
./a\ space
|
||||||
|
./a'single'quote
|
||||||
|
./a\"double\"quote
|
||||||
|
./a\\backslash
|
||||||
|
./a\ttab
|
||||||
|
./a\nnewline
|
||||||
|
@end group
|
||||||
|
@end smallexample
|
||||||
|
|
||||||
|
To disable quoting of such additional characters, use the following
|
||||||
|
option:
|
||||||
|
|
||||||
|
@table @option
|
||||||
|
@item --no-quote-chars=@var{string}
|
||||||
|
Remove characters listed in @var{string} from the list of quoted
|
||||||
|
characters set by the previous @option{--quote-chars} option.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
This option is particularly useful if you have added
|
||||||
|
@option{--quote-chars} to your @env{TAR_OPTIONS} (@pxref{TAR_OPTIONS})
|
||||||
|
and wish to disable it for the current invocation.
|
||||||
|
|
||||||
|
Note, that @option{--no-quote-chars} does @emph{not} disable those
|
||||||
|
characters that are quoted by default in the selected quoting style.
|
||||||
|
|
||||||
@node create options
|
@node create options
|
||||||
@section Options Used by @option{--create}
|
@section Options Used by @option{--create}
|
||||||
|
|||||||
Reference in New Issue
Block a user