Tardy(1)

NAME
tardy - a tar post-processor

SYNOPSIS
tardy [ option... ][ infile [ outfile ]]
tardy -Help
tardy -VERSion

DESCRIPTION
The tardy program is used to manipulate the file headers within archive files. Supported archive formats include tar(1), cpio(1) and ar(1).

This is useful when preparing sources for Internet archive sites, and you don't want to included details of your development environment in the tar(1) file.

One of the most useful features is the ability to add a prefix to the names of the files within the tar(1) file. An example is adding the prefix “.”, for when you have a tar(1) file with absolute paths in it, and need to extract the file with relative paths.

The GNU tar format headers are understood, including extended names.

If no input file is named, or the special name “-” is used, input will be read from the standard input. Similarly, if no output file is named, or the special name “-” is used, output will be written to the standard output. Note that tardy will refuse to read from or write to a terminal, as this indicates that the user has made a mistake.

If the input is in gzip(1) format, it will be automatically gunzip(1)ed before processing. Similarly, if the output file name indicates that gzip(1) should be used, this will be done automatically on output.

OPTIONS
The following options are understood:

-Block_Size number
    This option many be used to specify the block size, as a multiple of 512 bytes. The default is -bs=20 resulting in a 10kB block size.

-Clean_Meta
    This option may be used to ensure that file names do not contain shell meta characters. If any are found, they are replaced by a hyphen (-) character. Warning: duplicate file names may result.

-Clean_Print
    This option may be used to ensure that file names only contain printable ASCII characters. If any non-printable characters are found, they are replaced by a hyphen (-) character. Warning: duplicate file names may result.

-Clean_Space
    This option may be used to ensure that file names contain no white space characters. If any are found, they are replaced by a hyphen (-) character. Warning: duplicate file names may result.

-Clean
    This option is a terse way of specifying all of the above 3 options.

-DownCase
    This option may be used to force file names to be all lower case. Warning: duplicate file names may result.

-EXclude pattern
    This option may be used to completely remove files from the archive. All files that have a filename patching the given shell filename pattern will be removed. Be careful with wild cards, they match everything, including slash (/) characters. The exclude pattern is applied before all file-name manipulating patterns.

-eXtract
    This option may be used to extract the contents of an archive.

-Group arg
    This option may be used to set both the group name and group number fields in the header of every file in the archive file. The argument may be either a string or a number. It is an error if a corresponding entry cannot be found in the /etc/group file.

-Group_NAme string
    This option is used to set the group name field in the header of every file in the archive file. The string may be any arbitrary string, it is not restricted to a known group.

-Group_NAme number
    This option is used to set the group name field in the header of every file in the archive file. The number is mapped to a group name through the /etc/group file. It is an error if a corresponding group cannot be found.

-Group_NUmber string
    This option is used to set the group number field in the header of every file in the archive file. The string is mapped to a group number through the /etc/group file. It is an error if a corresponding group cannot be found.

-Group_NUmber number
    This option is used to set the group number field in the header of every file in the archive file. The number may be any arbitrary number, it is not restricted to a known group.

-Input_ForMaT name
    By default, the input file is examined to automatically detect the input archive file's format. This option may be used to specify the input format to be used. The input format names are

    tar This format understands all of the various tar(1) formats. This is the default.

    tar-bsd
        This format expects BSD tar(1) archives.

    ustar
        This format expects ustar(1) format archives.

    list
        The input is a text file which contains one file name per line. The named files are read as if they were the input. It is common for find(1) to be used to form the list of file names.

    directory
        The input is a text file which contains one file name per line. The named files are read as if they were an archive input. If any directories are found, they will be descended recursively.

    cpio
        The file is expected to be in one of the cpio(5) formats, and will be examined to figure out which.

    cpio-bin
        This format expects cpio(5) “old binary” format archives.

    cpio-crc
        This format expects cpio(5) “crc” format archives.

    cpio-new-ascii
        This format expects cpio(5) “new ascii” format archives.

    cpio-old-ascii
        This format expects cpio(5) “old ascii” format archives.

    ar  The file is expected to be in one of the ar(1) formats, and will be examined to figure out which.

    ar-bsd
        This format expects ar(1) “BSD” format archives.

    ar-pdp11
        This format expects ar(1) archives, in the ancient pre-V7 format.

    ar-v7
        This format expects ar(1) “Unix Version 7” format archives.

    Any other format name will produce an error.

-List
    Give a terse listing of the file headers on the standard error as they are written to the output.

-Mode_Clear bits
    This option may be used to set the mode of each file in the archive file. The bits specified are cleared in the mode. You should use an octal number with a leading zero as the argument; if you omit the leading zero it will be interpreted as decimal. The -Mode_Set option is applied first, the -Mode_Clear option is applied second; if neither is specified the mode of each file is unaltered.

-Mode_Set bits
    This option may be used to set the mode of each file in the archive file. The bits specified are set in the mode. You should use an octal number with a leading zero as the argument; if you omit the leading zero it will be interpreted as decimal.

-No_Directories
    This option may be used to suppress directories from the output. This can be useful when the archive has been created with directories in useless modes.

-Now
    Set the last-time-modified field of the headers to the current time, all files will be given the same time.

-Old_Type
    By default, tardy corrects the old normal file type into the modern normal file type. This option requests that old normal file type indicators remain unaltered.

-Output_ForMaT name
    By default, tardy tries to write the same format on output as it sees on input. This option may be used to specify the output format to be used. The output format names are

    ar  The archive will be written using the ar(1) format, BSD variant. Note that this format only supports simple files; it silently discards directories, and even discards directory portions of file names.

    ar-bsd
        The archive will be written using the ar(1) format, BSD variant. Long file names are handled by a special file at the start of the archive full of file names.

    ar-bsd-l2
        The archive will be written using the ar(1) format, BSD variant. Long file names are handled by special file name mangling in the archive, with the actual file name transparently injected into the start of the file data.

    ar-pdp11
        The archive will be written using the ar(1) format, in the most ancient pre-V7 variant. (There are also ar-pdp11-le and ar-pdp11-le names, if you need to select the byte order.)

    ar-port5
        The archive will be written using the ar(1) format, in the PORT5 variant. (There are also ar-port5-le and ar-port5-le names, if you need to select the byte order.)

    ar-v7
        The archive will be written using the ar(1) format, ancient Unix Version 7 variant. (There are also ar-v7-le and

    posix
        The format that GNU tar uses.

    tar-bsd
        The format that BSD tar(1) uses.

    cpio
        The new cpio(5) ASCII format.

    cpio-bin
        The cpio(5) "old binary" format, using host byte order.

    cpio-bin-le
        The cpio(5) "old binary" format, using littl--endian byte order.

    cpio-bin-be
        The cpio(5) "old binary" format, using big-endian byte order.

    cpio-crc
        The cpio(5) "crc ascii" format.

    cpio-old-ascii
        The old cpio(5) ASCII format.

    ustar
        This is the format that Joerg Schilling's ustar(1) uses.

    v7  The ancient UNIX V7 tar(1) format.

    Any other format name will produce an error.

-Prefix string
    This option is used to add a prefix directory name to the name of every file in the archive file.

-PROgress
    This option is used to obtain a progress indicator. Only works in combination with the -ifmt=list option.

-Remove_Prefix number
    This option is used to remove a number of leading directories from the name of every file in the archive file, if present. The prefixes will be removed before any prefix specified by the -Prefix option is prepended.

-Remove_Prefix string
    This option is used to remove a prefix directory name from the name of every file in the archive file, if present. This option may be given more than once, and as many of the prefixes as appear will be removed. The prefixes will be removed before any prefix specified by the -Prefix option is prepended.

    This option is potentially ambiguous with the preceding option, if you wish to remove a leading prefix which looks like a number. If this is the case, add a slash ("/") to the end of the prefix to stop it looking like a number.

-UpCase
    This option may be used to force file names to be all upper case. Warning: duplicate file names may result.

-User arg
    This option may be used to set both the user name and user number fields in the header of every file in the archive file. The argument may be either a string or a number. It is an error if a corresponding entry cannot be found in the /etc/passwd file.

-User_NAme string
    This option is used to set the user name field in the header of every file in the archive file. The string may be any arbitrary string, it is not restricted to a known user.

-User_NAme number
    This option is used to set the user name field in the header of every file in the archive file. The number is mapped to a user name through the /etc/passwd file. It is an error if a corresponding user cannot be found.

-User_NUmber string
    This option is used to set the user number field in the header of every file in the archive file. The string is mapped to a user number through the /etc/passwd file. It is an error if a corresponding user cannot be found.

-User_NUmber number
    This option is used to set the user number field in the header of every file in the archive file. The number may be any arbitrary number, it is not restricted to a known user.

-VERSion
    Print the version of the tardy program being executed.

SEE ALSO

ar(1)
    Create, modify, and extract from archives

ar(5)
    Format of ar(1) archive files (not all systems have this man page).

cpio(1)
    Copy files to and from archives

cpio(5)
    Format of cpio(1) archive files

find(1)
    Search for files in a directory hierarchy

tar(1)
    Store and extract files from a tape or disk archive

tar(5)
    Format of tar(1) archive files