Content-type: text/html
Manpage of STAR
STAR
Section: Schily\'s USER COMMANDS (1)
Updated: 02/05/09
Index
Return to Main Contents
NAME
star - unique standard tape archiver
SYNOPSIS
star
command
[
options
]
file1 ... filen
ustar
command
[
options
]
file1 ... filen
tar
command
[
options
]
file1 ... filen
DESCRIPTION
Star
is a very fast
tar(1)
like tape archiver with improved functionality.
Star
archives and extracts multiple files to and from a single file
called a
tarfile.
A
tarfile
is usually a magnetic tape, but it can be any file.
In all cases, appearance of a directory name refers to the files and
(recursively) subdirectories of that directory.
Star's
actions are controlled by the mandatory command flags from the
list below.
The way
star
acts may be modified by additional options.
FEATURES
Star
includes the first free implementation of
POSIX.1-2001
extended
tar
headers. The extended
tar
headers define a new standard way
for going beyond the limitations of the historic
tar
format.
They allow (among others) to archive all UNIX time stamps in sub-second
resolution, files of arbitrary size and filenames without length limitation
using
UNICODE UTF-8
coding for best exchange compatibility.
Star
by default uses a fifo to optimize data flow from/to tape. This results in
a normally streaming tape during the whole backup.
See
-fifo
and
fs=
option to get information on how to find the best fifo size.
Star
includes a pattern matcher to control the list of files to be
processed. This gives a convenient interface for archiving and
restoring complex lists of files. In conjunction with the
-w
flag it is easy to merge a
tar
archive into an existing file tree. See also
-U
option.
In create mode use the
pat=
option to specify either select or exclude patterns (depending on
the
-V
flag). In extract or list mode
all file type arguments are interpreted as select patterns while
the patterns specified with the
pat=
option may be used as select or exclude patterns (depending on
the
-V
flag).
Have a look at the description of the
-C
option to learn how fetch files from a list of directories
(in create mode) or to distribute files to a list of directories
(in extract mode).
Star
includes a sophisticated diff command. Several diff options
allow user tailorable functionality.
Star
won't show you differences you are not interested in.
Check the
diffopts=
option for more details.
Star
has no limitation on filename length. Pathnames and linknames up to
PATH_MAX
(1023 bytes with old OS versions and 4095 bytes with POSIX.1-2001)
may be archived. Later versions may be able to deal with
longer pathnames.
Star
deals with all 3 times, available for files on UNIX systems if the
archive format is either chosen from the star specific formats or
is a format that uses POSIX.1-2001 extended headers.
This is either done in second resolution by using a star specific
POSIX.1-1988 compatible extension or in sub second resolution by
using POSIX.1-2001 extended headers.
Star
is able to store and restore all 3 times (mtime, atime and even
ctime). On Solaris 2.x systems,
star
is able to do backups without changing any of the 3 the times.
If used with the
H=ustar
option, or if called as
ustar
or
tar
while the
H=headertype
option is not used,
star
is 100% POSIX compliant.
Star's
default format (if called as
star)
is
xstar
and is as posix compliant as possible. Enhancements to the standard that
prevent correct extraction of single files when using a different
tar
implementation that is only POSIX.1-1988 compliant may occur,
but they only affect single files with a pathname that is longer than 100+130 chars
or when archiving sparse files with the
-sparse
option in effect.
All other files will extract correctly.
See the description for the
H=headertype
option below for more information on archive formats and possible archive
interchange problems.
Star
makes it easy to repair corrupted filesystems. After a fsck -y
has been run on the filesystem,
star
is able to restore only
the missing files automatically.
Use then
star -diff
to check for differences (see EXAMPLES for more information).
Star
automatically recognizes the type of the archive.
Star
therefore is able to handle features and properties of different
archive types in their native mode,
if it knows about the peculiarities of the archive type.
See the
H=headertype
option for more details.
To be able to do this,
star
adds hidden fingerprints to the archive header that allows to recognise
all star specific archive formats. The GNU tar format is recognised by
the way it deviates from the standard.
Star
automatically recognizes and handles byte swapped archives. There is no
option to manually control byte swapping.
Star
automatically recognizes and handles compressed archives inside plain
files.
Star
is able to archive and restore
Access Control Lists
for files using POSIX.1-2001 extended headers.
COMMAND
In native mode,
star
is compatible to the command line syntax of a typical POSIX command
and for this reason expects
commands
and
options
to start with a single dash (-). In this case, commands
and options may be specified separately, all boolean or increment type
options may be specified either separately or combined.
For compatibility with GNU programs, long options may alternatively
start with a double dash.
In compatibility mode to POSIX
tar,
star
expects commands and options to appear as one single string that does not start
with a dash.
In POSIX tar compatibilitx mode,
additional non POSIX options may be specified but must appear after the
POSIX options and their args and need to start with a dash.
- -c
-
Create a new
tarfile
and write named files into it.
Writing starts at the beginning of
tarfile.
See -v option for information on how to increase verbosity while the
archive is written.
- -diff
-
Compare the content and the attributes of the files from the archive in
tarfile
to the filesystem.
This may also be used to compare two file trees in the filesystem and
gives with a good choice of
diffopts
- in some cases - a more readable output than diff -r.
See
diffopts
for more details.
- -n
-
No extraction. Show what
star
would do, in case the
-x
command had been specified.
- -r
-
Replace files in a
tarfile.
The named files are written to the end of
tarfile.
This implies that later,
the appropriate files will be found more than once on the
tarfile.
- -t
-
Table of contents.
List the contents of the
tarfile.
If the -v flag is used, the listing is similar to the format of ls -l output.
With this option, the flags
-a,
-atime
and
-ctime
have a different meaning if the archive is in
star,
xstar,
xustar,
exustar,
or
pax
format.
The option
-a
or
-atime
lists the access time instead of the modification time, the option
-ctime
lists the file creation time instead of the modification time.
- -u
-
Update a
tarfile.
The named files are written to the end of
tarfile
if they are not already there or if the files are newer than the files
of the same name found in the archive.
The -r and -u command only work if the
tar
archives is a regular file or
if the
tar
archive is an unblocked tape that may backspace.
- -x
-
Extract the named files from the
tarfile.
If no filename argument or pattern is specified, the entire content of the
tarfile
is restored.
If the -U flag is not used,
star
extracts no file which is older than the corresponding file on disk.
Exactly one of the commands above must be specified.
If one or more pattern are specified, they apply to any of the command
listed above.
OPTIONS
- -help
-
Print a summary of the most important options for
star(1).
- -xhelp
-
Print a summary of the less important options for
star(1).
- -/
-
Don't strip leading slashes from file names when extracting an archive.
Tar archives containing absolute pathnames are usually a bad idea.
With other
tar
implementations,
they may possibly never be extracted without clobbering existing files.
Star
for that reason, by default strips leading slashes from filenames
when in extract mode.
As it may be impossible to create an archive where leading slashes have
been stripped while retaining correct path names,
star
does not strip leading slashes in create mode.
- -acl
-
Handle
Access Control List
(ACL) information in create and extract mode.
If
-acl
has been specified,
star
is in create mode and the header type is
exustar, star
will add ACL information to the archive using POSIX.1-2001 extended headers.
If
-acl
has been specified and
star
is in extract mode,
star
will try to restore ACL information. If there is no ACL information for
one or all files in the archive,
star
will clear the ACL information for the specific file.
Note that if
-acl
has not been specified,
star
will not handle ACL information at all and files may inherit ACL
information from the parent directories.
If the
-acl
option has been specified,
star
assumes that the
-p
option has been specified too.
- -ask_remove
-
obsoleted by -ask-remove
- -ask-remove
-
Ask to remove non writable files on extraction.
By default,
star
will not overwrite files that are read only.
If this option is in effect,
star
will ask whether it should remove these files to allow the extraction of a file
in the following way:
-
-
remove 'filename' ? Y(es)/N(o) :
- -atime, -a
-
Reset access time of files after storing them to
tarfile.
On Solaris 2.x, (if invoked by root)
star
uses the
_FIOSATIME
ioctl to do this. This enables
star
not to trash the
ctime
while resetting the
atime
of the files.
If the
-atime
option is used in conjunction with the list command,
star
lists access time instead of modification time. (This works only in
conjunction with the
star,
xstar,
xustar,
exustar,
and with the
pax
format.)
Another option to retain the access time for the the files that
are going to be archives is to readonly mount a
UFS snapshot
and to archive files from the mount point of the UFS snapshot.
- -B
-
Force
star
to perform multiple reads (if necessary) to fill a block.
This option exists so that
star
can work across the Ethernet, since pipes and sockets return partial blocks
even when more data is coming.
If
star
uses
stdin
as archive file,
star
behaves as if it has been called with the
-B
option.
For this reason, the option -B in practice is rarely needed.
- -block-number
-
Print the archive block number (archive offset / 512) at the beginning of
each line when in verbose mode. This allows to write backup scripts
that archive the offsets for files and that use
mt fsr blockno
to skip to the tape block number of interest in a fast way
if a single file needs to be restored.
- blocks=#, b=#
-
Set the blocking factor of the
tarfile
to # times 512 bytes (unless a different multiplication factor has
been specified - see
bs=
option for posible multiplication factors).
Changing the blocking factor only makes sense
when the archive is located on a real tape device or when
the archive is accessed via the remote tape protocol (see
f=
option below).
The default is to use a blocking factor of 20 i.e.
10 kBytes.
Increasing the blocksize will speed up the backup.
For portability with very old
tar
implementations (pre BSD 4.2 or pre AT&T SVR4),
blocksize should not be more than 10 kBytes.
For POSIX.1-1988 compatibility, blocksize should be no more than 10 kBytes.
For POSIX.1-2001 compatibility, blocksize should be no more than 32 kBytes.
Most systems also have a hardware limitation for the blocksize, 32 kBytes
and 63 kBytes are common limits on many systems.
The upper limit in any case is the size of the buffer RAM in the tape drive.
Make a test if you want to make sure that the target system will handle
the intended blocksize.
If you use
star
for data exchange via tape, it is a good idea to use a blocksize of 10 kBytes
unless you are sure that the reading system will handle a larger blocksize.
If you use
star
for backup purposes with recent hardware, a blocksize of 256 kBytes
results in sufficient speed and seems to be a good choice.
Star
allows block sizes up to 2 GByte if the system does not impose a smaller limit.
If you want to determine the blocking factor when reading an unknown
tar
archive
on tape, specify a blocking factor that is higher than the supposed
blocking factor of the tape.
Star
then will determine the blocking factor
by reading the first record of the tape and print a message:
-
-
star: Blocksize = # records.
Where # is the blocking factor in multiples of 512 bytes.
The
blocks=
option
and the
bs=
option are equivalent methods to specify the tape block size.
The
blocks=
option is preferred by people who like to use an option that behaves
similar to the interface of the historic
tar(1)
implementations.
- bs=#
-
Set output block size to #.
You may use the same method as in
dd(1)
and
sdd(1).
The number representing the size is taken in bytes unless otherwise specified.
If a number is followed directly by the letter `.', `w', `b', `k', `m', `g',
`t', or `p',
the size is multiplied by 1, 2, 512, 1024, 1024*1024, 1024*1024*1024,
1024*1024*1024*1024 or 1024*1024*1024*1024*1024.
If the size consists of numbers separated by `x' or `*', multiplication of the
two numbers is performed.
Thus
bs=7x8k
will specify a blocksize of 56 kBytes.
Blocksize must be a multiple of 512 bytes.
See also the description of the
blocks=
option for more details on blocksizes.
The option
bs=
is preferred by people who like to use an option that behaves
similar to the interface used by
dd(1)
and
sdd(1).
- -bz
-
run the input or output through a
bzip2
pipe - see option
-z
below.
As both the
-bz
and the
-z
option are non standard, it makes sense to omit the
-bz
and the
-z
inside shell scripts if you are going to extract a compressed
archive that is located inside a plain file as
star
will auto detect compression and choose the right decompression
option to extract.
- C=dir
-
Perform a
chdir(2)
operation to
dir
before storing or extracting the next files.
In all cases,
star
will perform the
chdir(2)
operation relative to the current working directory of the shell.
-
- *
-
In list mode (with the
-t
flag),
star
ignores all
-C
options.
- *
-
In create mode (with the
-c, -r and -u
flag),
star
walks through all
-C
options and file type arguments.
While a BSD derived
tar(1)
implementation
goes back to the current working directory after storing
one file argument that immediately follows the
-C
option,
star
changes the directory only if a new
-C
option follows.
To emulate the behavior of a BSD derived
tar(1),
add a
-C .
option after the file argument.
- *
-
In extract mode (with the
-x, -n and -diff
flag),
star
builds a pattern list together with corresponding directories and
performs a
chdir(2)
to the corresponding directory of a matching pattern.
All
pat=
options in this case are interpreted as if they were preceded by
a
-C .
option.
See EXAMPLES for more information.
- -copylinks
-
This option allows to copy hard/symlinks targets
rather than creating a link.
It helps to extract
tar
files on systems that do not implement
links (e.g. OS/2).
To extract and copy all symlinks correctly, you may need to call
star
twice as
star
cannot copy files that appear in the archive later than a symlink
pointing to them.
- -ctime
-
If used with the list command, this lists
ctime
rather than
mtime
if the archive format is
star,
xstar,
xustar,
exustar,
or
pax.
If used with the extract command and the same archive formats,
this tries to restore even the
ctime
of a file by generating time storms.
You should not do this when in multi user mode because this may
confuse programs like cron and the news system.
If used with the create command this changes the behavior of the
newer=
option.
Star,
in this case compares the
ctime
of all files to the
mtime
of the stamp file rather then comparing the
mtimes
of both files.
- -D
-
Do not descend directories.
Normally,
star
descends the whole tree if it encounters a directory in
in its file parameters.
The option
-D
is in effect by default if the
list=file
option is used.
If you like
star
to descend directories found in the list file, use the
-dodesc
option (see below).
- -d
-
Do not store/create directories.
Old versions of
tar
such as published with the seventh edition of UNIX
are not able to deal with directories in
tar
archives.
If a
tar
archive is generated without directories this avoids
problems with
tar
implementations found on SYSVr3 and earlier.
- -debug
-
Print debug messages. Among other things, this gives debug messages for
header type recognition,
tar
type properties, EOF recognition, opening
of remote archives and fifo internals.
- diffopts=optlst
-
Comma separated list of diffopts.
Valid members in
optlst
are:
-
- help
-
Print a summary of possible members of the diffopts list.
- !
-
- not
-
Invert the meaning of all members in the diffopts list i.e. exclude
all present options from an initially complete set compare list.
When using
csh(1)
you might have problems to use
!
due to its strange parser.
This is why the
not
alias exists.
- perm
-
Compare file permissions. With this option in effect,
star
compares the low order 12 bits of the st_mode field.
- mode
-
Same as
perm.
- type
-
Compare file type.
Note that
star
cannot compare the file type in case of a hard link.
- nlink
-
Compare link count on hardlinks (currently not supported).
- uid
-
Compare numerical user id of file.
- gid
-
Compare numerical group id of file.
- uname
-
Compare ASCII version of user id of file.
The user name is mapped via the file /etc/passwd.
- gname
-
Compare ASCII version of group id of file.
The group name is mapped via the file /etc/group.
- id
-
Compare all user/group related info of file.
Note that this will always find differences if the source and
target system use different user or group mappings.
- size
-
Compare file size.
Note that
star
cannot compare the file size in case of a hard link.
- nlink
-
Compare link count on hardlinks (currently not supported).
- data
-
Compare content of file.
If
star
already found that the size of the files differ, it will not
compare the content anymore.
- cont
-
Same as
data.
- rdev
-
Compare major/minor numbers for device nodes.
- hardlink
-
Compare target of hardlinks.
- symlink
-
Compare target of symlinks. This evaluates the value returned by the
readlink(2) call.
- atime
-
Compare access time of file.
This only works with if the archive format is
star,
xstar,
xustar,
exustar,
or
pax.
- mtime
-
Compare modification time of file.
- ctime
-
This only works with if the archive format is
star,
xstar,
xustar,
exustar,
or
pax.
- times
-
Shorthand for:
atime,mtime,ctime.
If
optlst
starts with a ! the meaning of all members in
optlst
is inverted as with the
not
optlist member.
If
diffopts
are not specified,
star
compares everything but the access time of the files.
- -dirmode
-
If in create mode (i.e. when storing files to archive),
star
stores directories past the corresponding files. This guarantees that even old
tar
implementations without a directory cache will be able to restore the
correct times of directories.
- -dodesc
-
Force
star
to descend directories found in a
list=file.
See also the
-D
option above.
- -dump
-
This currently is an experimental option to make it easier to implement a
star
version that supports
true incremental dumps.
Star
currently sets the archive type to
exustar
and archives more inode meta data inside POSIX.1-2001 extended headers.
- -F,-FF ...
-
Fast and simple exclude option for create mode.
With one
-F
argument,
star
ignores all directories called
SCCS and RCS.
With two
-F
arguments,
star
in addition ignores all files called
core errs a.out
all files ending with
.o.
OBJ/.
With three
-F
arguments,
star
ignores all sub trees starting from a directory that
includes a file
.mirror
or
.exclude
and all object files and files called
core errs a.out
all files ending with
.o.
With four
-F
arguments,
star
ignores all sub trees starting from a directory that
includes a file
.mirror
or
.exclude
the latter files are excluded too as well as
and all object files and files called
core errs a.out
all files ending with
.o.
With five
-F
arguments,
star
in addition again excludes
all directories called
SCCS and RCS.
- -fifo
-
Use a
fifo
to optimize data flow from/to
tarfile.
This option is in effect by default (it may be changed at compile time).
The default fifo size is 8 MBytes on all platforms except Linux versions
that do not support mmap() (4 MB because kernels
before 2.4 did not handle big shared memory areas) and Sun/mc68000 (1 MB).
This will
star
make even work on a tiny machine like
a Sun 3/50. The fifo size may be modified with the
fs=
option. A rule of dumb for the fifo size is to use more than the buffer size
of the tape drive and less then half of the real memory of the machine.
A good choice would be to use a fifo size between 8 and 256 MB.
This may increase backup speed up to 5% compared to the speed achieved
with the default fifo size. Note that with a DLT drive that gives 12MB/s
transfer rate, a fifo of 256 MB size will keep the tape at least streaming
in units of 20 seconds.
All options that start with the
-f
sequence are sensitive to typo problems, see BUGS section for more information.
- -fifostats
-
Print fifo statistics at the end of a
star
run when the fifo has been in effect.
All options that start with the
-f
sequence are sensitive to typo problems, see BUGS section for more information.
- file=tarfilename, f=tarfilename
-
Use
tarfilename
as the name for the
tar
archive. Currently up to 100
file=
options are possible. Specifying more then one
file=
option make sense in multi volume mode. In this case
star
will use the next name in the list every time a media change is needed.
To make
star
behave consistent with the single file case,
star
loops over the list of known archive files.
Note that if
star
is installed suid root and the first tarfile is a remote archive,
only the connection to this archive will be created with root privilleges.
After this connection has been established as root,
star
switches back to the id of the caller.
If any of the other archives in the list is located on a different host,
star
will not be able to open this archive later on, unless run by root.
Star
normally uses
stdin/stdout
for the
tar
archive because the most common way to use
star
is in conjunction with pipes.
If
star
is installed suid root or if it has been called by root,
tarfilename
may be in remote syntax: user@host:filename as in
rcp(1)
even if
invoked by non root users.
See SUID NOTES for more information.
To make a file local although it includes a colon (:), the filename
must start with:
'/',
'./' or
'../'
Note that if
star
talks to an old
rmt
remote tape server that does not support symbolic open modes,
it does not open a remote tape with the
O_CREAT
open flag because this would be extremely dangerous.
If the
rmt
server on the other side is the
rmt
server that comes with
star
or the GNU
rmt
server,
star
may use the symbolic mode for the open flags.
Only the symbolic open modes allow to send all possible open
modes in a portable way to remote tape servers.
It is recommended to use the
rmt
server that comes with
star.
It is the only
rmt
server that gives platform independent compatibility with BSD, Sun and GNU
rmt
clients and it includes security features that may be set up in /etc/default/rmt.
All options that start with the
-f
sequence are sensitive to typo problems, see BUGS section for more information.
- -force_hole
-
obsoleted by -force-hole
- -force-hole
-
Try to extract all files with holes. This even works with files that
are created without the
-sparse
option.
Star,
in this case examines
the content of the files in the archive and replaces writes to parts containing
binary zeroes with seeks. This option should be used with extreme care
because you sometimes get in trouble when files get unattended holes.
All options that start with the
-f
sequence are sensitive to typo problems, see BUGS section for more information.
- -force_remove
-
obsoleted by -force-remove
- -force-remove
-
Force to remove non writable files on extraction.
By default,
star
will not overwrite files that are read only.
If this option is in effect,
star
will silently remove these files to allow the extraction of a file.
All options that start with the
-f
sequence are sensitive to typo problems, see BUGS section for more information.
- fs=#
-
Set fifo size to #.
See
bs=
for the possible syntax.
The default size of the fifo is 1 Mbyte on Sun mc68000 systems,
4 Mbytes on non mmap() aware Linux systems and 8 Mbytes on all other systems.
See
-fifo
option for hints on using the right fifo size.
- H=headertype
-
Generate a tape archive in
headertype
format.
If this option is used in extract/list mode this forces
star
to interpret the headers to be of type
headertype.
As
star
even in case of a user selected extract archive format does format checking,
it may be that you will not be able to unpack a specific archive with all
possible forced archive formats. Selecting the old
tar
format for extraction will always work though.
Valid parameter for
headertype
are:
-
- help
-
Print a help message about possible header types.
- tar
-
Old UNIX
tar
format.
This archive format may only store plain files, directories and
symbolic links.
Pathnames or linknames longer than 99 chars may not be archived.
See also the
-d
option as a note to some even older tar implementations.
If the
tar
format has been selected,
star
will not use enhancements to the historic tar format.
File size is limited to 2 GB - 2 bytes, uid/gid is limited to 262143.
Sparse files will be filled up with zeroes.
- star
-
Old
star
standard format. This is an upward/downward compatible
enhancement of the
old
(pre Posix) UNIX
tar
format.
It has been introduced in 1985 and therefore is not Posix compliant.
The
star
format allows to archive special files (even sockets) and records access time and
creation time besides the modification time. Newer versions of the old
star
format allow very long filenames (100+155 chars and above), linknames > 100 chars
and sparse files.
This format is able to copy the device nodes on HP-UX
that have 24 bits in the minor device number, which is more then the 21 bits
that are possible with the POSIX-1003.1-1988 archive format.
- gnutar
-
This is a commonly used, but unfortunately not Posix compliant
(although designed after 1987)
enhancement to the old
tar
format.
Do not use the
gnutar
archive format unless you want to create an archive for a target system
that is known to have only the gnutar program available.
The
gnutar
archive format violates basic rules for any (even the historic) tar archive format.
Using the
gnutar
archive format causes a high risk that the resulting archive may only be read
by gnutar or by
star.
The implementation of the gnutar archive format within
star
is not complete, but
sufficient for most gnutar archives.
See NOTES for more information.
- ustar
-
IEEE/Posix1003/IEC-9945-1-1988 Standard Data Interchange format.
With this option in effect,
star
will generate 100% POSIX.1-1988 compliant
tar
archives.
Files with pathnames longer than 100+155 chars or linknames longer than
100 chars may not be archived.
If
star
is called as
ustar
the default archive format is
ustar.
If the
ustar
format has been selected,
star
will not use enhancements to the POSIX.1-1988 tar format, the archive
will be strictly conforming.
File size is limited to 8 GB, uid/gid/major/minor is limited to 2097151.
Sparse files will be filled up with zeroes.
- pax
-
The IEEE/Posix1003/IEC-9945-1-1988 successor,
the POSIX-1003.1-2001 Standard Data Interchange format.
If the
pax
format has been selected,
star
will not use enhancements to the POSIX.1-2001 tar format, the archive
will be strictly conforming.
File size is unlimited, uid/gid/uname/gidname is unlimited,
major/minor is limited to 2097151.
Sparse files will be filled up with zeroes.
- xstar
-
Extended standard
tar
format.
Star
uses the
xstar
format as default archive format.
This is an upward/downward compatible enhancement
of the IEEE/Posix1003/IEC-9945-1 Standard Data Interchange format.
It allows among others very long filenames (100+130 chars and above)
and records access time and creation time.
The
xstar
format is the default format when
star
is neither called as
tar
nor called as
ustar.
- xustar
-
New format introduced 1998, that omits the
tar
signature at the end of the
tar
header. It is otherwise identical
to the
xstar
format.
As some
tar
implementations do not follow the POSIX rules and compute
the checksum for less than 512 bytes of the
tar
header, this format may help
to avoid problems with these
tar
implementations.
The main other difference to the
xstar
format is that the
format uses POSIX.1-2001 extended headers to overcome limitations of the
historic
tar
format while the
xstar
format uses proprietary extensions.
The
xustar
format is the default format when
star
is called as
tar.
File size is unlimited, uid/gid/uname/gidname is unlimited,
major/minor is unlimited.
Sparse files will be archived correctly.
- exustar
-
A format similar to the
xustar
format but with forced POSIX.1-2001 extended headers.
If this format is used together with the
-acl
option,
star
records Access Control Lists (ACLs) in POSIX.1-2001 extended headers.
File size is unlimited, uid/gid/uname/gidname is unlimited,
major/minor is unlimited.
Sparse files will be archived correctly.
- suntar
-
The extended header format found on Solaris 7/8. This format is similar to the
pax
format but does not handle
atime
and
ctime
and in addition uses 'X' as the typeflag for the extended headers instead of
the standard 'x'.
File size is unlimited, uid/gid/uname/gidname is unlimited,
major/minor is unlimited.
Sparse files will be filled up with zeroes.
All
tar
archive formats may be interchanged if the archive contains
no files that may not be archived by using the old
tar
format.
Archives in the
xstar
format may be extracted by any 100% POSIX compliant
tar
implementation if they contain no files with pathnames > 100+130 chars
and if they contain no sparse files that have been archived by using
the
-sparse
option.
- -h, -L
-
Follow symbolic links as if they were files.
Normally
star
will not follow symbolic links but stores their values in
tarfile.
See also the
-L
option.
- -hardlinks
-
In extract mode, this option tells
star
to try to create a hardlink whenever a symlink is encountered in the archive.
In create mode, this option tells
star
to try to archive a hardlink whenever a symlink is encountered in the
file system.
- -hpdev
-
Allow 24 bits for the minor device number using 8 octal digits.
Note that although it allows to create
tar
archives
that can be read with HP-UX tar, this creates
tar
archives
which violate POSIX.1-1988.
This option is only needed if you like to use a POSIX.1-1988 based archive
format that does not include extensions.
If you use the
xstar
format,
star
will use a base 256 extension that allows bigger major/minor numbers by default,
if you use the
xustar
or the
exustar
format there is no limitation at all as these formats use POSIX.1-2001
extended headers to archive the major/minor numbers by default.
- -i
-
Ignore checksum errors on
tar
headers.
If this option is specified,
star
will not exit if a header with a bad checksum is found but search for the
next valid header.
- -I
-
Obsolete option, otherwise identical to
-w.
- -keep_old_files
-
obsoleted by -keep-old-files
- -keep-old-files, -k
-
Keep existing files rather than restoring them from
tarfile.
This saves files from being clobbered even if
tarfile
contains a more recent version of the corresponding file.
- -L, -h
-
Follow symbolic links as if they were files.
Normally
star
will not follow symbolic links but stores their values in
tarfile.
See also the
-h
option.
- -l
-
Do not print a warning message if not all links to hard linked files
could be dumped. This option is evaluated in the opposite way to historic
tar(1)
implementations and to POSIX.1.
POSIX.1 requests that by default no warning messages will be printed
and
-l
will enable warning messages when not all links could be archived.
- -link-dirs
-
When in create mode, try to find hard linked directories.
Using
-link-dirs
will force
star
to keep track of all directories that will go into the archive and thus
causes a lot more memory to be allocated than in the default case.
Note that not all filesystem allow to create hard links to directories.
Also note that even though a non-root user is able detect and archive
hard linked directories, all known operating systems require the extraction
to be done as root in order to be able to create or remove hard links to directories.
For this reason its only recommended to use this option when doing accurate
backups and when hard links to directories are expected.
When the option
-link-dirs
is not used and hard links to directories are present, the appendant sub-tree
will appear more than once on the archive and
star
will print
Linkcount below zero
warnings for non directory hard links inside the sub-tree.
- list=filename
-
Read filenames for store/create/list command from
filename.
The file
filename
must contain a list of filenames, each on a separate line.
This option implies the
-D
option.
To force
star
to descend directories, use the
-dodesc
option in this case.
- -M
-
Do not descend mount points.
This is useful when doing backups of complete filesystems.
See NOTES for more information.
- -m
-
Do not restore access an modification time.
(Access time is only available if
star
is reading
star,
xstar,
xustar,
exustar,
or
pax
archives). If
star
extracts other archive types, the
-m
flag only refers to the modification time.
- maxsize=#
-
Do not store files in
tarfile
if they are bigger than #.
See
bs=
for the possible syntax.
By default, the number is multiplied by
1024, so the value counts in units of kBytes.
If the size specifier ends with a valid multiplication character
(e.g '.' for bytes or 'M' for MB) the specified size is used as specified
and not multiplied by 1024.
See
bs=
option for all possible multipliers.
- -meta
-
This currently is an experimental option. In create mode, it causes
star
to archive all
meta
data of the file (e.g. uid, permissions, ...) bit not the
file content. In extract mode, it causes
star
to restore all
meta
data but not the file content. In addition, in extract mode
no plain file, special file or directory will be created.
Meta
files are needed in future
star
versions that support incremental backups.
Warning: Do not try to extract
star
archives containing
meta
files using other tar implementations if they are not aware of the
meta
file extensions of
star.
Star
tries to force all tar implementations that are not standard compliant to abort.
Star
also tries to make all non POSIX.1-2001 compliant tar implementations unable
to find a valid filename. However when other POSIX.1-2001 aware tar implementations
come up and don't know about
meta
files, they will destroy files on disk.
The problems result from the only current fallback in the POSIX standard that
tells tar implementations to treat all unknown file types as if they were
plain files. As
meta
files are needed for incremental backups, I am looking for people and companies
who like to support me to be able to add the
meta
file concept to the POSIX.1-2005 standard.
- -modebits
-
This options allows you to create
tar
archives that include
more than 12 bits from st_mode. Note this create
tar
archives
that violate POSIX but some
tar
implementations insist in reading
such nonstandard archives.
- newer=filename
-
Do not store files to
tarfile
if their modification time is not newer than the modification time of
filename.
See
-ctime
option for changing this behavior.
- -newest
-
In conjunction with the list command this lists you only the newest file in
tarfile.
- -newest_file
-
obsoleted by -newest-file
- -newest-file
-
In conjunction with the list command this lists you only the newest regular
file in
tarfile.
- new-volume-script=script
-
Call
script
at end of each tape if in multi volume mode.
If this option is not in effect,
star
will ask the user to confirm the volume change.
- -nodump
-
If this option is set,
star
will not dump files that have the
nodump
flag set. Note that this currently only works on BSD-4.4 derivates
and on Linux.
On Linux, using this option will cause a performance degradation
(the system time increases by 10%) because of the unlucky kernel interface.
- -no_fifo
-
obsoleted by -no-fifo
- -no-fifo
-
Don't use a
fifo
to optimize data flow from/to
tarfile.
Currently the
-fifo
option is used as default. (This may be changed at compile time.)
- -nochown, -o
-
Do not restore owner and group of files.
This may be used if super user privileges are needed to overwrite
existing files but the local ownership of the existing files should
not change.
- -no_statistics
-
obsoleted by -no-statistics
- -no-statistics
-
Do not print statistic messages at the end of a
star
run.
- -not, -V
-
Invert the meaning of the pattern list. i.e. use those files which do not match
any of the pattern.
Note that this option only applies to patterns that have been specified
via the
pattern=pattern or pat=pattern
option. Patterns specified as file type arguments will not be affected.
- -nowarn
-
Do not print warning messages.
This sometimes is useful to make the output more readable
(e.g. when hundreds of files that are going to be extracted are not newer
in the archive then on the filesystem).
- -numeric
-
Use the numeric user/group fields in the listing rather than the
default.
The default allows to list the ASCII version of user/group of the file
and to extract the owners of the files based on numeric values rather
than the names.
In create mode, no user/groups names are put on the archive.
The
-numeric
option also applies when ACLs are going to be archived or extracted.
- -O
-
Be compatible to old versions of
tar.
If
star
is invoked with this option,
star
generates archives which are
fully compatible with old UNIX
tar
archives. If in extract mode,
star
ignores any additional info in the headers.
This implies neither that archives generated with this option are
binary equal with archives generated by old
tar
versions nor that
star
is trying to comprehend all bugs that are found in old
tar
versions.
The bug in old
tar
versions that cause a reversal of a space and a NULL byte
in the checksum field is not repeated.
If you want to have signed checksums you have to specify the
-singed-checksum
option too.
If you want directories not to be archived in order to be compatible
to very old historic tar archives, you need to specify the
-d
option too.
This option is superseeded by the
H=headertype
option.
- -o, -nochown
-
Do not restore owner and group of files.
This may be used if super user privileges are needed to overwrite
existing files but the local ownership of the existing files should
not change.
- -onull, -nullout
-
Do not actually write to the archive but compute and add the sizes.
This is useful when trying to figure out if a tape may hold
the current backup.
Please only use the
-onull
option as it is a similar option as used by the
sdd(1)
command.
- -P
-
Allow
star
to write a partial record as the last record.
Normally,
star
writes each record with the same size.
This option is useful on unblocked tapes i.e. cartridge tapes like QIC tapes
as well as with archives that are located in files.
If you use this option on local files, the size of the archive will be smaller.
If you use this option on cartridge tapes, is makes sure that later - in extract mode -
star
will read up to the end of file marker on the tape and the next call to
star
will read from the next archive on the same tape.
- -p
-
Restore filemodes of directories. Without this option directories are
created using the present
umask(2).
If in create mode (i.e. when storing files to archive),
star
stores directories past the corresponding files. This guarantees that even old
tar
implementations will be able to restore the correct times of
directories.
If the archive contains Access Control Lists (ACLs) in
POSIX.1-2001 extended headers,
star
will restore the access control lists from the archive for files
if the -acl option is specified.
If the option -acl has not been specified, ACLs are not restored at all.
- pattern=pattern, pat=pattern
-
Set matching pattern to
pattern.
A maximum of 100 pattern=pat options may be specified.
As each pattern is unlimited in length, this is no real limitation.
If more than one pattern is specified, a file matches if any of the
specified pattern matches.
Patterns may be used in create mode to select or exclude files
from the list of file type arguments or the files located in a sub tree
of a file type argument directory.
In extract or list mode, all file type arguments are interpreted to be
select pattern and all option type patterns may be either select or exclude patterns
depending on the presence or absence of the
-not
option.
If you use file type select patterns, they work exactly like the method
used by other (non pattern aware)
tar(1)
implementations.
File type select patterns do not offer pattern matching but allow to restore subtrees.
To extract a complete sub tree
from the directory
dir
with
star
using the
pattern=
option, use
pattern=
dir/\\*
if you like to select a subtree by using the historic method, use
dir/
as file type argument.
See manual page for
match(1)
for more details of the pattern matcher.
All patterns are selection patterns by default. To make them exclude patterns,
use the
-not
or the
-V
option.
- -qic24
-
Set tape volume size to 61440 kBytes.
See
tsize=#
option for more information.
- -qic120
-
Set tape volume size to 128000 kBytes.
See
tsize=#
option for more information.
- -qic150
-
Set tape volume size to 153600 kBytes.
See
tsize=#
option for more information.
- -qic250
-
Set tape volume size to 256000 kBytes.
See
tsize=#
option for more information.
- -refresh_old_files
-
obsoleted by -refresh-old-files
- -refresh-old-files
-
- -refresh
-
Do not create new files. Only already existing files may be overwritten from
tarfile
if either newer versions are present in the archive or if the
-U
flag is used.
This allows to overwrite files by more recent files from an archive
that contains more files than the target directory should contain.
The option
-refresh-old-files
is the same as the
-refresh
option.
- -remove_first
-
obsoleted by -remove-first
- -remove-first
-
Remove files before extraction.
If this option is in effect,
star
will remove files before extracting a file from the archive.
This is needed if you want to change the file type or if you need
to break a hard link.
If you do not use either
-ask-remove
or
-force-remove
together with
-remove-first,
this option is useless and no files will be removed.
- -remove_recursive
-
obsoleted by -remove-recursive
- -remove-recursive
-
Remove files recursive.
If removing of a file is permitted,
star
will only remove files, specials and empty directories.
If this option is in effect,
star
will be allowed to recursively removes non empty directories too.
- -S
-
Do not store/create special files.
A special files is any file except plain files, symbolic links and directories.
You need to be super user to extract special files.
- -shm
-
Use System V shared memory for fifo.
Normally
star
is compiled to use mapped /dev/zero pages for the fifo, if the operating system
supports this.
If
star
is compiled to have both code for mapped pages and for System V shared memory,
star
will use shared memory instead of the default.
If the
-help
menu doesn't show the
-shm
flag you have no choice.
When using System V shared memory, you may have to raise the system's internal
limit for shared memory resources to get enough shared memory for
star.
- -signed_checksum
-
obsoleted by -signed-checksum
- -signed-checksum
-
Use signed chars to calculate checksums. This violates the
tar
specs but old
versions of
tar
derived from the seventh edition of UNIX are implemented in this way.
Note: Only filenames and linknames containing chars with the most
significant bit set may trigger this problem because all
other fields only contain 7 bit ASCII characters, octal digits or binary
zeroes.
- -silent
-
Suppress informational messages like
foobar is sparse.
- -sparse
-
Handle files with holes effectively on store/create.
Note that sparse files may not be archived this way if the archive format is
tar,
ustar,
pax,
or
suntar.
On Solaris-2.3 ... Solaris-2.5.1 there is a special ioctl() called
_FIOAI
that allows root to get the allocation info more efficiently.
Other operating systems lack support to get the real allocation list
and force
star
to scan the files to look for blocks that only contain null characters.
This may
star
to assume more holes to be present than the number that the file really contains.
- -symlinks
-
This option tells
star
in extract mode to try to create a symlink whenever a hardlink is encountered
in the archive.
- -T
-
If the option
file=
or
f=
is omitted and the -T option is present,
star
will use the device indicated by the
TAPE
environment variable,
if set.
- -time
-
Print timing info.
See DIAGNOSTICS for more information.
- -to_stdout
-
obsoleted by -to-stdout
- -to-stdout
-
Extract files to stdout. This option may be used to extract
tarfiles
containing
tarfiles
(see examples below).
- -tpath
-
Use this option together with the
-t
option to get only a list of the
pathnames of the files in the archive.
This may be used in shell scripts to generate a name list.
If used together with the
-diff
option,
star
will only print the names of the files that differ.
A second run of
star
may then be used to restore all files that had differences to the archive.
Use the
list=
option to specify the namelist in this case.
- tsize=#
-
Set tape volume size to # to enable multi volume tape support.
See
bs=
for the possible syntax.
By default, the number is multiplied by
512, so the value counts in units of 512 byte blocks.
If the size specifier ends with a valid multiplication character
(e.g '.' for bytes or 'M' for MB) the specified size is used as specified
and not multiplied by 512.
With this option in effect,
star
is able to archive filesystems that are bigger then the tape size.
Files that do not fit on a single tape may not be stored with the
current version of
star.
- -U
-
Restore files unconditionally.
By default, an older file from the archive will not replace a corresponding newer file on
disk.
- -v
-
Increment verbose level by one.
This normally results in more output during operation.
See also in the description for the
-t
flag.
Normally,
star
does its work silently.
If the verbose level is 2 or more and
star
is in create or update mode,
star
will produce a listing to the format of the ls -l output.
- -V, -not
-
Invert the meaning of the pattern list. i.e. use those files which do not match
any of the pattern.
Note that this option only applies to patterns that have been specified
via the
pattern=pattern or pat=pattern
option. Patterns specified as file type arguments will not be affected.
- -version
-
Print version information and exit.
- VOLHDR=name
-
Use
name
to generate a volume header.
- -w
-
Do interactive creation, extraction or renaming.
For every file that matches the list of patterns and that has a more
recent modification time in the
tar
archive (if in extract mode and
the -U option is not specified)
star
prints its name and asks:
-
-
get/put ? Y(es)/N(o)/C(hange name) :
You may answer either `N' for No or <Return> to skip this file.
If you answer `Y' the file is extracted or archived on tape with its
original name.
If you answer `C', you are prompted for a new name. This name is used
for the filename on disk if
star
is in extract mode or for the archive name if
star
is in create mode.
- -wready
-
This option is added as a hack for a bug in the SunOS/Solaris
st
device driver. This driver has problems to sense the loading time
with Exabyte drives with factory settings.
Star
waits up to one minute for the drive to become ready if this option
is specified.
- -xdir
-
Extract directories even if the corresponding directories on the
archive are not newer.
This is useful when for some reason, the directories are recorded
after their content (see
-dirmode
option), or when the permissions of some directories
must be set in any case.
- -xfflags
-
Store and extract extended file flags as found on BSD and Linux systems.
This option only makes sense when creating or extracting
exustar
archives as it is based on POSIX.1-2001 extended tar headers.
- -z
-
run the input or output through a
gzip
pipe.
This is currently a quick and dirty hack, that mainly will cover
the most common usage to compress the
tar
output if it is a file.
No reblocking will be done, so this option will currently only make sense
on plain files.
The environment variable
As both the
-bz
and the
-z
option are non standard, it makes sense to omit the
-bz
and the
-z
inside shell scripts if you are going to extract a compressed
archive that is located inside a plain file as
star
will auto detect compression and choose the right decompression
option to extract.
STAR_COMPRESS_FLAG
may be used to specify one option for gzip.
If you want to write write compressed archives to tape, you should use
star -c . | gzip | sdd ibs=4k obs=32k -fill of=/dev/rmt/1bn
or
star -c . | gzip | sdd ibs=4k obs=32k -fill ovsize=60m of=/dev/rmt/1bn
if the tape can hold 60 MB.
SIGNALS
If
star
handles a signal, it first prints the statistics.
Star
handles the following signals:
- SIGINT
-
usually generated by ^C from the controlling tty.
Upon receipt of a SIGINT,
star
prints statistics and exits.
If in create mode i.e. storing files to archive,
star
finishes with the current file to ensure that no
partial file is written to the archive, write an eof record and then exits.
- SIGHUP
-
not to be generated from a tty. The actions are the same as upon receipt
of a SIGINT.
- SIGQUIT
-
usually generated by ^\ from the controlling tty.
Upon receipt of a SIGQUIT,
star
prints statistics and continues with the current operation. This is
useful to watch the progress of the current operation.
EXAMPLES
To get a listing in a way similar to ls -l one might use:
-
example% star -tv f=/dev/rmt/1bn
The same command as listed above in a
POSIX tar
command line syntax compliant way is:
-
example% star tvf /dev/rmt/1mbn
To copy the directory tree in
/home/someuser
to the directory
/home/fs
use:
-
example% (cd /home/someuser; star -c .) | (cd /home/fs ; star -xp)
or by using the change directory option of
star:
-
example% star -c -C /home/someuser . | star -xp -C /home/fs
To copy a file tree including the
Access Control List
entries for all files use:
-
example% star -c -Hexustar -acl -C /home/someuser . | star -xp -acl -C /home/fs
To compare the content of a tape to the filesystem one might use:
-
example% star -diff -v f=/dev/rmt/1bn
To compare two directory trees one might use:
-
example% star -c . | star -C todir -diff -v diffopts=!times
To extract a backup of the /usr tree without all files residing below
/usr/openwin one might use:
-
example% star -xp -V pat=openwin/\* f=/dev/rmt/1bn
To extract all
.c
files to
src,
all
.o
files to
obj
and all other files to /tmp one might use:
-
example% star -xp -C src '*.c' -C obj '*.o' -C /tmp '*' f=/dev/rmt/1bn
To extract files from a zipped
tar
archive that is located on a read only filesystem
e.g. a CD while having the shell's working directory on the CD one might use:
-
example% star -zxp -C /tmp f=star-1.1.tar.gz
to extract the files from the
tar
archive to the /tmp directory.
To backup a list of files generated by the
find(1)
command:
-
example% find . find_options -print | star -c list=- f=/dev/rmt/1bn
Note that this does not work if the file names from output of the
find
command include new line characters.
To extract a
tarfile
that contains a
tarfile
one might use:
-
example% star -x -to-stdout f=/dev/rmt/1bn pat=pat | star -xp
Pat,
in this case should match the
tarfile
in the
tarfile
on tape that
should be extracted.
To make a backup of the root filesystem to a tape drive connected to a
remote machine, one might use:
-
example# cd /
example# star -cM fs=128m bs=63k f=tape@remotehost:/dev/rmt/1bn .
You need a line in /etc/passwd like the following to enable this:
-
tape:NP:60001:60001:Tape:/etc/tapehome:/opt/schily/sbin/rmt
And a .rhosts file in /etc/tapehome to allow remote connections from
the appropriate hosts.
Make sure that the file /etc/default/rmt exists and allows remote access
to the requested tape drive.
To repair a corrupted filesystem for which no recent backup exists,
do the following:
-
example# fsck -y /filesys
example# mount /filesys
example# cd /filesys
example# star -xpk f=/dev/rmt/1bn
example# mt -f /dev/rmt/1bn rewind
example# star -diff -v diffopts=!times f=/dev/rmt/1bn
Now check the differences and decide whether to restore additional
files. This may be done by generating a list containing the needed
filenames and using the list= option or by using the interactive mode
(see -w option).
If you want a list that only contains all filenames from files with
differences you may use:
-
example# star -diff -tpath diffopts=!times f=/dev/rmt/1bn
If you are looking for files that changed the type or the access permission
because this is a common case on still corrupted files, use:
-
example# star -diff -tpath diffopts=type,perm f=/dev/rmt/1bn
ENVIRONMENT
- STAR_COMPRESS_FLAG
-
If you like
star
to always create compressed files that use maximum compression, you may set
the environment variable
STAR_COMPRESS_FLAG
to -9.
- STAR_FIFO_SIZE
-
If you like to by default let
star
use a different fifo size, set this environment variable to the desired size.
- TAPE
-
Unlike other
tar(1)
implementations,
star
defaults to use stdin/stdout for the archive.
If you like
star
to use the file name from the
TAPE
environment instead, you need to specify the
-T
option too.
FILES
Currently none except the files implied be the command line from
star.
In future,
star
may use
/etc/default/star
to set up global defaults.
SEE ALSO
tar(1),
cpio(1),
rcp(1),
mt(1),
rmt(1),
match(1),
dd(1),
sdd(1),
star(4/5),
rcmd(3),
fssnap(1m)
DIAGNOSTICS
star: f records + p bytes (total of x bytes = d.nnk).
The number of full records, the number of bytes in partial records
and the total amount of data in KBytes.
star: Total time x.yyysec (z kBytes/sec)
The time used and the transfer speed from/to the archive.
If there have been non fatal errors during the archive processing,
star
will display a delayed error summary before exiting.
NOTES
The POSIX command line syntax for the tar command deviates from the
command line syntax defined for all other commands. While the
POSIX command line syntax
requests
all options to start with a dash (-) and allows to either write options separately
or combined (in case of boolean flags), the
POSIX tar
command line syntax
requires all options to be combined into a single string that does not start with
a dash.
Star
by default assumes a command line syntax like a typical POSIX command and includes
a compatibility mode that allows to specify a command line syntax as documented
for the
POSIX tar
command.
If you believe that you found a bug in the way
star
parses the command line, please first check your command line for correctness before
you make a bug report for
star.
If you like to write portable shell scripts that call tar, use the
POSIX tar
command line syntax (i.e. a single option string and no dash), choose the
commands and options from the following set of characters (
rxtuc vxfblmo
) and check the shell script with both, your local tar and
star
for correct behavior. It you expect the script to call gnutar, do not include
the
-o
option as gnutar implements this option in a way that violates POSIX.
Star
strips leading ./ sequences from pathnames. This lets
star
in many cases store longer pathnames than other implementations.
The POSIX.1-1988 method (ustar format) of storing files with pathnames that are
longer than 100 chars has some limitations:
-
The name field (100 chars) an inserted slash (`/')
and the prefix field (155 chars) produce
the pathname of the file. When recreating the original filename,
name and prefix are concatenated, using
a slash character in the middle. If a pathname does not fit in the
space provided or may not be split at a slash character so that the
parts will fit into 100 + 155 chars, the file may not be archived.
Linknames longer than 100 chars may not be archived too.
The
star,
xstar,
xustar,
exustar,
pax,
and
gnutar
archive formats don't have these limitations. While gnutar uses a
method that makes it impossible for other
tar
implementations (except
star)
to restore filenames that are longer than 100 chars, the
xstar,
xustar,
exustar
and
pax
archive format uses a method that allows an POSIX.1-1988 compliant way of
storing filenames, if the POSIX method would allow this.
When the archive format is
xustar,
exustar
or
pax
very long filenames are stored using extended headers from the POSIX.1-2001 standard.
Some buggy
tar
implementations will generate incorrect filenames
during a restore operation if the archive contains pathnames or linknames of
exactly 100 chars length.
Star
adds a
tar
signature in the last four bytes of each
tar
header if the archive format is
star
or
xstar.
This is no problem
with the
star
archive format as it is an extension of the old pre POSIX.1-1988 tar format.
On the other side, the
xstar
archive format claims to be as POSIX.1-1988 compliant as possible.
Inserting this
tar
signature is a minor deviation from the standard that has the last 12 bytes
of each header reserved for future use. On the other side,
tar
implementations
such as some
pax
implementations that only compute checksums on the first 500 bytes of the header
are violating the standard that requests the checksum to be computed on all
512 bytes of the tar header. All
tar
implementations that are 100% Posix
compliant will be able to extract
xstar
archives as long as no new standard is defined that claims the last 12 bytes
of the header for a different use.
But then the
ustar version
number should be changed from `00'
to `01'.
Now, that the POSIX-2001 standard has been accepted, it is even predictable
that all extensions to the standard
tar
format will go into the POSIX.1-2001 extended headers
which are extensible to include any feature without future limitation.
The only known
tar
implementation that also uses the last 12 bytes of the
tar
header is Sun's
tar
which uses these 12 bytes for files that are split over
several archives. Such archives created by Sun's tar are not
readable by the buggy
pax
implementation too. The Sun extension is not incompatible to the
star
signature because Sun expects an octal number at the beginning of the
12 byte field which is a null character in the
star
case.
Star
uses these four bytes since 1985 without problems.
If you need a 100% POSIX.1-1988 and 100% POSIX.1-2001 compliant tar archive,
you may use the
xustar,
exustar
or the
pax
archive format.
The probability of falsely detecting other
tar
formats as
xustar
or
exustar
format however is higher.
There is no way to ask for the
n-th
occurrence of a file.
The way EOF is handled by
star
differs, whether the fifo is in effect or not.
If the fifo is not used,
star
stops reading the archive if it
encounters a logical EOF record in the archive.
If the fifo is used,
star
may read until the fifo is full or until the real EOF mark on tape is reached.
How much data
star actually reads depends on the time when the
star
foreground process sends a fifo shutdown signal to the background fifo read
process.
Gnu tar often creates
tar
archives with incorrect logical EOF marks.
The standard requires two blocks that are completely zeroed, whereas gnutar
often only adds one of them.
Old versions of
tar
found on SYSVr3 and earlier cannot read
tar
archives
with a blocksize greater than 10 kBytes.
The method of storing
sparse
files currently used with the
star
and
xstar
format is not guaranteed to be used in later versions of
star.
If the author decides to change this method, later versions of
star
may not be able to restore sparse files from
tar
archives made by the current version of
star.
Some
tar
implementations violate the standard in using only the first 500
Bytes of the header for checksum computation. These
tar
implementations
will not accept
star
and
xstar
type
tar
archives.
Sun's Solaris 2.x
tar
implementation violates the Posix standard. Tar
archives generated by
star
cause Sun's
tar
to print tar: impossible file type messages. You may
ignore these messages.
Gnutar's dumpdirs are non standard and are currently not implemented.
If gnutar archives sparse files with more than four holes, it produces
archives that violate the standard in a way that prevents other
tar
implementations to read these archives.
Star
knows about that and is able to handle these gnutar archives.
The filetype
N
(LF_NAMES) from gnutar (an obsolete method of storing long names) will never be
implemented.
SUID NOTES
If
star
is installed suid root,
star
is able to make connections to remote archives for non root users.
This is done by using the
rcmd(3) interface to get a connection to a rmt(1) server.
Star
resets its effective uid back to the real user id immediately after setting up
the remote connection to the rmt server and before opening any other file.
LIMITATIONS
If
star
is running on a large file aware platform,
star
is able to handle files up to 8 GB in a mode that is compliant to the POSIX.1-1988
ustar
format. With a nonstandard
star
specific extension, up to 95 bits may be used to code the filesize.
This will handle files up to 200,000,000 TB.
With the new POSIX.1-2001 extended headers
used by the
xustar,
exustar
and
pax
format, any filesize may be archived.
BUGS
The fact that the
-f
option has to be implemented in a way that is compatible with old tar
implementations gives several problems.
The options
-fifostats,
-force-hole,
-force-remove
and
-fifo
interfere with the
-f
option and the fact that they exist prevents users from using filenames like
e.g.
ifo
using the traditional way where the filename directly follows the string
-f
without any space between the option name and the file name.
However, there is no problem to use a file named
ifo
by by calling
-f ifo,
f=ifo,
-f=ifo
or
-f= ifo.
Be careful not to make typos with the above options. The result could be
that a file is created as a result of the mistyped option.
There is currently no way to set the fifo lowwater and highwater marks.
There is currently no way to automatically delete files in the target file tree
if they are obsolete.
Star
should implement something similar to gnutar's dumpdirs.
If not invoked by the super user
star
may not be able to extract files
if they reside in read only directories.
Star
is not able to make a complete backup of a filesystem if files
are hidden by a mount that is in effect on a directory of this
filesystem.
This may be avoided in case of the ufs filesystem
if the backup is made off a ufs snapshot (see the man page for
fssnap(1m)
It could be avoided for any filesystem if the loopback filesystem had an
option that tells
lofs
not to traverse mountpoints.
HISTORY
Star
was first created in 1982 to extract tapes on a UNIX clone that had no
tar
command.
In 1985 the first fully functional version has been released as
mtar.
When the old
star
format extensions have been introduced in 1985, it was renamed to
star
(Schily tar).
In 1994, Posix 1003.1-1988 extensions were added and
star
was renamed to
star
(Standard tar).
AUTHOR
Joerg Schilling
Seestr. 110
D-13353 Berlin
Germany
Mail bugs and suggestions to:
schilling@fokus.gmd.de
or
js@cs.tu-berlin.de
or
joerg@schily.isdn.cs.tu-berlin.de
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- FEATURES
-
- COMMAND
-
- OPTIONS
-
- SIGNALS
-
- EXAMPLES
-
- ENVIRONMENT
-
- FILES
-
- SEE ALSO
-
- DIAGNOSTICS
-
- NOTES
-
- SUID NOTES
-
- LIMITATIONS
-
- BUGS
-
- HISTORY
-
- AUTHOR
-
This document was created by
man2html,
using the manual pages.
Time: 07:15:45 GMT, November 15, 2004