Normally, tar
will request data in full record increments from
an archive storage device. If the device cannot return a full record,
tar
will report an error. However, some devices do not always
return full records, or do not require the last record of an archive to
be padded out to the next record boundary. To keep reading until you
obtain a full record, or to accept an incomplete record if it contains
an end-of-archive marker, specify the --read-full-records (-B) option
in conjunction with the --extract (--get, -x) or --list (-t) operations.
See section Blocking.
The --read-full-records (-B) option is turned on by default when
tar
reads an archive from standard input, or from a remote
machine. This is because on BSD Unix systems, attempting to read a
pipe returns however much happens to be in the pipe, even if it is
less than was requested. If this option were not enabled, tar
would fail as soon as it read an incomplete record from the pipe.
If you're not sure of the blocking factor of an archive, you can read the archive by specifying --read-full-records (-B) and --blocking-factor=512-size (-b 512-size), using a blocking factor larger than what the archive uses. This lets you avoid having to determine the blocking factor of an archive. See section The Blocking Factor of an Archive.
Go to the first, previous, next, last section, table of contents.