The FTimes Project The HashDig Project The WebJob Project The PaD Project
Location: / Home / FTimes / Man Pages / ftimes-xpa
Man Pages


FTimesXpa - Create a cross-platform archive.


ftimes-xpa {-a|--archive} [{-b|--blocksize} bytes] [{-l|--list} {file|-}] -- [target [...]]

ftimes-xpa {-v|--version}


The FTimesXpa utility reads one or more files specified in a list or on the command line and creates a cross-platform archive, which is written to stdout. Each specified filename is assumed to be encoded (i.e., neutered by FTimes), and it is automatically decoded to obtain the real name, which may contain special characters. For WINX platforms, the decoded name is assumed to be a UTF-8 string.


The modes of operation described in this section are mutually exclusive. In other words, only one mode may be specified per invocation.

{-a|--archive} [{-b|--blocksize} bytes] {-l|--list} {file|-} -- [target [...]]

Create a cross-platform archive containing each file specified in the list file or on the command line.


Display version information and exit.


Upon successful completion, a value of 0 (XER_OK) is returned. Otherwise, one of the following error codes is returned:

  • 1 = XER_Usage

  • 2 = XER_Abort

  • 3 = XER_BootStrap

  • 4 = XER_ProcessArguments


Example 1. Standard operation

This example demonstrates how to create a cross-platform archive of a file with a neutered name. In this case, the name contains space and newline characters.

    ftimes-xpa --archive -- name+with+spaces%0aand%0anewlines > out.xpa

Such a file can be created with the following Perl one-liner:

    perl -e 'open(F, ">name with spaces\nand\nnewlines"); print F "jinx\n";'

Example 2. Standard operation with input from stdin

This example demonstrates how to create a cross-platform archive from a list of files passed on stdin. The list for stdin will be generated by ftimes(1).

    ftimes --mapauto none -l 6 *.o | ftimes-xpa --archive --list - > out.xpa

Example 3. Files with alternate data streams

This example demonstrates how to create a cross-platform archive of an alternate data stream called 'ads1'.

    ftimes-xpa --archive -- some-file-with-a-stream:ads1

If you believe a file contains an alternate data stream, you can use ftimes(1) to determine its name as follows:

    ftimes --mapauto none -l 6 some-file-with-a-stream

Note that alternate data streams are specific to WINX platforms and NTFS.




Klayton Monroe


This utility was initially written to support a forensic gig where we needed to create cross-platform archives with built-in integrity attributes that could be streamed over the network (e.g., via SSH). We also needed to harvest alternate data streams and handle files with awkward or mischievous names (i.e., names requiring special handling to prevent terminal rendering issues and errors in various tools and shell scripts).

This utility first appeared in FTimes 3.9.0.

Copyright 2000-2014 The FTimes Project, All Rights Reserved.
The FreeBSD Project SourceForge Logo KoreLogic, Inc.