[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-tar] GNU tar 1.16

From: Sergey Poznyakoff
Subject: [Bug-tar] GNU tar 1.16
Date: Sat, 21 Oct 2006 19:44:48 +0300


I am pleased to announce the release of GNU tar 1.16.

GNU tar is an archiver that creates and handles file archives in various
formats. You can use tar to create file archives, to extract files from
previously created archives, store additional files, or update or list
files which were already stored.

For more information on tar, including links to file downloads,
please see the tar web page: http://www.gnu.org/software/tar
and the the project page http://savannah.gnu.org/projects/tar.  

GNU tar is available from ftp://ftp.gnu.org/gnu/tar and
the mirror sites worldwide (see http://www.gnu.org/order/ftp.html
for the list of those).

The files and their MD5 checksums are:

58bbcc76a7a082ac93178846cc78a911  tar-1.16.cpio.gz
8a93a99bd015fd7e071adaa6a6db192b  tar-1.16.cpio.gz.sig
ad37ca4ac00cd52ce2b9a33b072b933d  tar-1.16.shar.gz
15631e88f25c0b2e558115aaed2917a2  tar-1.16.shar.gz.sig
d6fe544e834a8f9db6e6c7c2d38ec100  tar-1.16.tar.bz2
00318874cd0dee748a9c9642bf25d9d0  tar-1.16.tar.bz2.sig
bb9d2a5b87d0ad825fb9d34e1617325d  tar-1.16.tar.gz
4896817446efe2df5813459ea637c028  tar-1.16.tar.gz.sig

User-visible changes since the previous version 1.15.1:

* Incompatible changes

** Globbing

Previous versions of GNU tar assumed shell-style globbing when
extracting from or listing an archive.  For example:

  tar xf foo.tar '*.c'

would extract all files whose names end in '.c'.  This behavior
was not documented and was incompatible with traditional tar
implementations.  Therefore, starting from this version, GNU tar
no longer uses globbing by default.  For example, the above invocation
is now interpreted as a request to extract from the archive the file
named '*.c'.

To treat member names as globbing patterns, use --wildcards option.  
If you wish tar to mimic the behavior of the older versions of GNU tar,
add --wildcards to the value of the environment variable TAR_OPTIONS.

The exact way in which tar interprets member names is controlled by the
following command line options:

     --wildcards              use wildcards 
     --anchored               patterns match file name start
     --ignore-case            ignore case
     --wildcards-match-slash  wildcards match `/'

Each of these options has a '--no-' counterpart that disables its
effect (e.g. --no-wildcards).

These options affect both the interpretation of member names from 
command line and that of the exclusion patterns (given with --exclude
and --exclude-from options). The defaults are:

 1. For member names: --no-wildcards --anchored
 2. For exclusion patterns: --wildcards --no-anchored --wildcards-match-slash

The options can appear multiple times in the command line, thereby
changing the way command line arguments are interpreted.  For example,
to use case-insensitive matching in exclude patterns and to revert to
case-sensitive matching for the rest of command line, one could write:

  tar xf foo.tar --ignore-case --exclude-from=FILE --no-ignore-case file.name

** Short option -l is now an alias of --check-links option, which complies
with UNIX98.  This ends the transition period started with version 1.14.
* New features

** New option --transform allows to transform file names before storing them
in the archive or member names before extracting.  The option takes a
sed replace expression as its argument.  For example,

  tar cf foo.tar --transform 's,^,prefix/,'

will add 'prefix/' to all file names stored in foo.tar.

** --strip-components option works when deleting and comparing.  In previous
versions it worked only with --extract.

** New option --show-transformed-names enables display of transformed
file or member names.   In particular, when creating an archive in
verbose mode, it lists member names as stored in the archive, i.e., with
any eventual prefixes removed and file name transformations applied (see
--transform).  The option is useful, for example, while comparing `tar
cv' and `tar tv' outputs. 

** New incremental snapshot file format keeps information about file names 
as well as that about directories.

** The --checkpoint option takes an optional argument specifying the number
of records between the two successive checkpoints.   Optional dot
starting the argument intructs tar to print dots instead of textual

** The --totals option can be used with any tar operation (previous versions
understood it only with --create).  If an argument to this option is
given, it specifies the signal upon delivery of which the statistics
is to be printed.  Both forms of this option (with and without
argument) can be used in a single invocation of tar.

* After creating an archive, tar exits with code 1 if some files were
changed while being read.  Previous versions exited with code 2 (fatal
error), and only if some files were truncated while being archived.

* New option --mtime allows to set modification times for all archive
members during creation. 

** Any number of -T (--files-from) options may be used in the command line.
The file specified with -T may include any valid `tar' options,
including another -T option.
Compatibility note: older versions of tar would only recognize -C
as an option name within the file list file.  Now any file whose name
starts with - is handled as an option.  To insert file names starting with
dash, use the --add-file option.

** List files containing null-separated file names are detected and processed
automatically.  It is no longer necessary to give the --null option.

** New option --no-unquote disables the unquoting of input file names.
This is useful for processing output from `find dir -print0'.
An orthogonal option --unquote is provided as well.

** New option --test-label tests the archive volume label.
If an argument is specified, the label is compared against its value.
Tar exits with code 0 if the two strings match, and with code 2 if
they do not.

If no argument is given, the --verbose option is implied.  In this case,
tar prints the label name if present and exits with code 0.

** New option --to-command pipes the contents of archive members to the
specified command.

** New option --atime-preserve=system, which uses the O_NOATIME feature
of recent Linux kernels to avoid some problems when preserving file
access times.

** New option --delay-directory-restore delays restoring modification times
and permissions of extracted directories until the end of extraction.
This is necessary for restoring from archives with unusual member
ordering (in particular, those created with --no-recursion option).
This option is implied when restoring from incremental archives.

** New option --restrict prohibits use of some potentially harmful tar
options.  Currently it disables '!' escape in multi-volume name menu.

** New options --quoting-style and --quote-chars control the way tar
quotes member names on output. The --quoting-style takes an argument
specifying the quoting style to use (literal, shell, shell-always,
c, escape, locale, clocale). The argument to --quote-chars is a string
specifying characters to quote, even if the selected quoting style
would not quote them otherwise.  The option --no-quote-chars is
provided to disable quoting certain characters.

** The end-of-volume script (introduced with --info-script option) can
get current archive name from the environment variable TAR_ARCHIVE and
the volume number from the variable TAR_VOLUME.  It can alter the
archive name by writing new name to the file descriptor 3.

** Better support for full-resolution time stamps.  Tar cannot restore
time stamps to full nanosecond resolution, though, until the kernel
guys get their act together and give us a system call to set file time
stamps to nanosecond resolution.

** The -v option now prints time stamps only to 1-minute resolution,
not full resolution, to avoid using up too many output columns.
Nanosecond resolution is now supported, but that would be too much.

* Bug fixes

** Allow non-option arguments to be interspersed with options.

** When extracting or listing archives in old GNU format, tar
used to read an extra block of data after a long name header
if length of the member name was divisible by block size (512).
Consequently, the file pointer was set off and the next member
was not processed correctly.

** Previous version created invalid archives when files shrink
during reading.

** Compare mode (tar d) hanged when trying to compare file contents.

** Previous versions in certain cases failed to restore directory
modification times.

** When creating an archive in ustar or v7 format, no attempt
is made to store files whose meta-data cannot be stored in the header
due to the format limitations.

** Avoid running off file descriptors when using multiple -C options.

** tar --index-file=FILE --file=- sent the archive to FILE, and
the listing to stderr.

** Detect attempts to update compressed archives.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]