Reading (GNU tar 1.35)

#### 4.4.1 Options to Help Read Archives

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` or `--list` operations. See 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 The Blocking Factor of an Archive.