[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-tar] GNU tar 1.16
[Bug-tar] GNU tar 1.16
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:
User-visible changes since the previous version 1.15.1:
* Incompatible changes
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
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
** New option --atime-preserve=system, which uses the O_NOATIME feature
of recent Linux kernels to avoid some problems when preserving file
** 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
** Compare mode (tar d) hanged when trying to compare file contents.
** Previous versions in certain cases failed to restore directory
** 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.
|[Prev in Thread]
||[Next in Thread]|
- [Bug-tar] GNU tar 1.16,
Sergey Poznyakoff <=