Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

Next: , Previous: Using Multiple Tapes, Up: Media


9.7 Including a Label in the Archive

To avoid problems caused by misplaced paper labels on the archive media, you can include a label entry—an archive member which contains the name of the archive—in the archive itself. Use the --label=archive-label (-V archive-label) option in conjunction with the --create operation to include a label entry in the archive as it is being created.

--label=archive-label
-V archive-label
Includes an archive-label at the beginning of the archive when the archive is being created, when used in conjunction with the --create operation. Checks to make sure the archive label matches the one specified (when used in conjunction with any other operation.

If you create an archive using both --label=archive-label (-V archive-label) and --multi-volume (-M), each volume of the archive will have an archive label of the form ‘archive-label Volume n’, where n is 1 for the first volume, 2 for the next, and so on. See Using Multiple Tapes, for information on creating multiple volume archives.

The volume label will be displayed by --list along with the file contents. If verbose display is requested, it will also be explicitely marked as in the example below:

     $ tar --verbose --list --file=iamanarchive
     V--------- 0 0        0 1992-03-07 12:01 iamalabel--Volume Header--
     -rw-r--r-- ringo user 40 1990-05-21 13:30 iamafilename

However, --list option will cause listing entire contents of the archive, which may be undesirable (for example, if the archive is stored on a tape). You can request checking only the volume by specifying --test-label option. This option reads only the first block of an archive, so it can be used with slow storage devices. For example:

     $ tar --test-label --file=iamanarchive
     iamalabel

If --test-label is used with a single command line argument, tar compares the volume label with the argument. It exits with code 0 if the two strings match, and with code 2 otherwise. In this case no output is displayed. For example:

     $ tar --test-label --file=iamanarchive 'iamalable'
     => 0
     $ tar --test-label --file=iamanarchive 'iamalable' alabel
     => 1

If you request any operation, other than --create, along with using --label option, tar will first check if the archive label matches the one specified and will refuse to proceed if it does not. Use this as a safety precaution to avoid accidentally overwriting existing archives. For example, if you wish to add files to archive, presumably labelled with string ‘My volume’, you will get:

     $ tar -rf archive --label 'My volume' .
     tar: Archive not labeled to match `My volume'

in case its label does not match. This will work even if archive is not labelled at all.

Similarly, tar will refuse to list or extract the archive if its label doesn't match the archive-label specified. In those cases, archive-label argument is interpreted as a globbing-style pattern which must match the actual magnetic volume label. See exclude, for a precise description of how match is attempted1. If the switch --multi-volume (-M) is being used, the volume label matcher will also suffix archive-label by ‘ Volume [1-9]*’ if the initial match fails, before giving up. Since the volume numbering is automatically added in labels at creation time, it sounded logical to equally help the user taking care of it when the archive is being read.

The --label was once called --volume, but is not available under that name anymore.

You can also use --label to get a common information on all tapes of a series. For having this information different in each series created through a single script used on a regular basis, just manage to get some date string as part of the label. For example:

     $ tar cfMV /dev/tape "Daily backup for `date +%Y-%m-%d`"
     $ tar --create --file=/dev/tape --multi-volume \
          --volume="Daily backup for `date +%Y-%m-%d`"

Also note that each label has its own date and time, which corresponds to when GNU tar initially attempted to write it, often soon after the operator launches tar or types the carriage return telling that the next tape is ready. Comparing date labels does give an idea of tape throughput only if the delays for rewinding tapes and the operator switching them were negligible, which is usually not the case.


Footnotes

[1] Previous versions of tar used full regular expression matching, or before that, only exact string matching, instead of wildcard matchers. We decided for the sake of simplicity to use a uniform matching device through tar.


 
 
  Published under the terms of the GNU General Public License Design by Interspire