@itemx -a
During a @option{--create} operation, enables automatic compressed
-format recognition based on the archive suffix. @xref{gzip}.
+format recognition based on the archive suffix. The effect of this
+option is cancelled by @option{--no-auto-compress}. @xref{gzip}.
@opsummary{backup}
@item --backup=@var{backup-type}
@opsummary{lzma}
@item --lzma
+@itemx -J
This option tells @command{tar} to read or write archives through
@command{lzma}. @xref{gzip}.
+@item --lzop
+
+This option tells @command{tar} to read or write archives through
+@command{lzop}. @xref{gzip}.
+
@opsummary{mode}
@item --mode=@var{permissions}
An exclude pattern can match any subsequence of the name's components.
@xref{controlling pattern-matching}.
+@opsummary{no-auto-compress}
+@item --no-auto-compress
+
+Disables automatic compressed format recognition based on the archive
+suffix. @xref{--auto-compress}. @xref{gzip}.
+
@opsummary{no-check-device}
@item --no-check-device
Do not check device numbers when creating a list of modified files
Print warnings about subprocesses that terminated with a nonzero exit
code. @xref{Writing to an External Program}.
+@opsummary{no-null}
+@item --no-null
+
+If the @option{--null} option was given previously, this option
+cancels its effect, so that any following @option{--files-from}
+options will expect their file lists to be newline-terminated.
+
@opsummary{no-overwrite-dir}
@item --no-overwrite-dir
@item -G @tab @ref{--incremental}.
+@item -J @tab @ref{--lzma}.
+
@item -K @tab @ref{--starting-file}.
@item -L @tab @ref{--tape-length}.
@item -o @tab When creating, @ref{--no-same-owner}, when extracting ---
@ref{--portability}.
-The later usage is deprecated. It is retained for compatibility with
+The latter usage is deprecated. It is retained for compatibility with
the earlier versions of @GNUTAR{}. In future releases
@option{-o} will be equivalent to @option{--no-same-owner} only.
@vrindex TAR_BLOCKING_FACTOR, checkpoint script environment
@item TAR_BLOCKING_FACTOR
-Current blocking factor (@pxref{Blocking}.
+Current blocking factor (@pxref{Blocking}).
@vrindex TAR_CHECKPOINT, checkpoint script environment
@item TAR_CHECKPOINT
-The checkpoint number.
+Number of the checkpoint.
@vrindex TAR_SUBCOMMAND, checkpoint script environment
@item TAR_SUBCOMMAND
-A short option describing the operation @command{tar} is executing
+A short option describing the operation @command{tar} is executing.
@xref{Operations}, for a complete list of subcommand options.
@vrindex TAR_FORMAT, checkpoint script environment
@option{--files-from}.
@table @option
-@opindex null
+@xopindex{null, described}
@item --null
Only consider @code{NUL} terminated file names, instead of files that
terminate in a newline.
+
+@xopindex{no-null, described}
+@item --no-null
+Undo the effect of any previous @option{--null} option.
@end table
The @option{--null} option is just like the one in @acronym{GNU}
$ @kbd{tar -c -v --null --files-from=long-files --file=big.tar}
@end smallexample
-@FIXME{say anything else here to conclude the section?}
+The @option{--no-null} option can be used if you need to read both
+zero-terminated and newline-terminated files on the same command line.
+For example, if @file{flist} is a newline-terminated file, then the
+following command can be used to combine it with the above command:
+
+@smallexample
+@group
+$ @kbd{find . -size +800 -print0 |
+ tar -c -f big.tar --null -T - --no-null -T flist}
+@end group
+@end smallexample
+
+This example uses short options for typographic reasons, to avoid
+very long lines.
+
+@GNUTAR is able to automatically detect null-terminated file lists, so
+it is safe to use them even without the @option{--null} option. In
+this case @command{tar} will print a warning and continue reading such
+a file as if @option{--null} were actually given:
+
+@smallexample
+@group
+$ @kbd{find . -size +800 -print0 | tar -c -f big.tar -T -}
+tar: -: file name read contains nul character
+@end group
+@end smallexample
+
+The null terminator, however, remains in effect only for this
+particular file, any following @option{-T} options will assume
+newline termination. Of course, the null autodetection applies
+to these eventual surplus @option{-T} options as well.
@node exclude
@section Excluding Some Files
@cindex CVS, excluding files
@cindex SVN, excluding files
@cindex git, excluding files
+@cindex Bazaar, excluding files
+@cindex Arch, excluding files
+@cindex Mercurial, excluding files
+@cindex Darcs, excluding files
@table @option
@opindex exclude-vcs
@item --exclude-vcs
-Exclude files and directories used by some version control systems.
+Exclude files and directories used by following version control
+systems: @samp{CVS}, @samp{RCS}, @samp{SCCS}, @samp{SVN}, @samp{Arch},
+@samp{Bazaar}, @samp{Mercurial}, and @samp{Darcs}.
@end table
As of version @value{VERSION}, the following files are excluded:
@item @file{=RELEASE-ID}
@item @file{=meta-update}
@item @file{=update}
+@item @file{.bzr}
+@item @file{.bzrignore}
+@item @file{.bzrtags}
+@item @file{.hg}
+@item @file{.hgignore}
+@item @file{.hgrags}
+@item @file{_darcs}
@end itemize
@findex exclude-caches
For example:
@smallexample
-$ @kbd{(cd / && tar -c -f archive.tar home)}
-# @i{or}:
-$ @kbd{tar -c -f archive.tar -C / home}
+$ @kbd{tar -c -f archive.tar -C / home}
@end smallexample
@include getdate.texi
@cindex Compressed archives
@cindex Storing archives in compressed format
+@cindex gzip
+@cindex bzip2
+@cindex lzma
+@cindex lzop
+@cindex compress
@GNUTAR{} is able to create and read compressed archives. It supports
-@command{gzip}, @command{bzip2} and @command{lzma} compression
+@command{gzip}, @command{bzip2}, @command{lzma} and @command{lzop} compression
programs. For backward compatibility, it also supports
@command{compress} command, although we strongly recommend against
using it, because it is by far less effective than other compression
commands. The compression option is @option{-z} (@option{--gzip}) to
create a @command{gzip} compressed archive, @option{-j}
(@option{--bzip2}) to create a @command{bzip2} compressed archive,
-@option{--lzma} to create an @asis{LZMA} compressed archive and
+@option{-J} (@option{--lzma}) to create an @asis{LZMA} compressed
+archive, @option{--lzop} to create an @asis{LSOP} archive, and
@option{-Z} (@option{--compress}) to use @command{compress} program.
For example:
$ @kbd{tar xf archive.tar.gz}
@end smallexample
+The format recognition algorithm is based on @dfn{signatures}, a
+special byte sequences in the beginning of file, that are specific for
+certain compression formats. If this approach fails, @command{tar}
+falls back to using archive name suffix to determine its format
+(@xref{auto-compress}, for a list of recognized suffixes).
+
The only case when you have to specify a decompression option while
reading the archive is when reading from a pipe or from a tape drive
that does not support random access. However, in this case @GNUTAR{}
@item --auto-compress
@itemx -a
Select a compression program to use by the archive file name
-suffix. The following suffixes are recognized:
+suffix. The following suffixes are recognized:
@multitable @columnfractions 0.3 0.6
@headitem Suffix @tab Compression program
@item @samp{.tbz} @tab @command{bzip2}
@item @samp{.lzma} @tab @command{lzma}
@item @samp{.tlz} @tab @command{lzma}
+@item @samp{.lzo} @tab @command{lzop}
@end multitable
@opindex gzip
@opindex lzma
@item --lzma
+@itemx -J
Filter the archive through @command{lzma}. Otherwise like @option{--gzip}.
+@opindex lzop
+@item --lzop
+Filter the archive through @command{lzop}. Otherwise like
+@option{--gzip}.
+
@opindex compress
@opindex uncompress
@item -Z