pt - command to manipulate pairtrees


pt [-d dir] mktree directory [prefix]
pt [-l] [-d dir] [rmtree | lstree] [directory] ...
pt [-d dir] [mkid | rmid | lsid] id ...
pt [i2p | p2i] name ...


The pt utility introduces commands that can be used to create, delete, modify, and report on a pairtree. When not made explicit via an argument (see the first two forms above), the pairtree in question is assumed to reside in a pairtree_root/ directory descending from the current directory or from a directory specified with -d.

The first form creates a pairtree, recording an optional prefix that will be stripped from an identifier before mapping it to a pairpath and prepended to an identifier generated from a pairpath. The second form deletes or lists an entire tree of nodes. The format of listing output can be specified with the --format option, currently one of "ANVL", "XML", "JSON", or "Plain" (default).

The third form creates, deletes, or tests the existence of tree nodes addressed via the identifier corresponding to each node's filesystem pairpath directory. When mkid is used with a non-existent pairtree, it will attempt first to create a pairtree. After creating a new pairpath, mkid will create a bud directory to encapsulate the new tree leaf (that will not otherwise be supplied by pt).

By default, the bud directory name will be taken from the full form of the identifier. While a pairpath may have any length, to properly encapsulate a leaf, there must be one and only one bud, and its name must be more than two characters long. An identifier shorter than that requires padding the bud name on the left with `0' (zero), except for an empty identifier, when the bud name simply becomes "supernode".

If -l is also given for lstree, the total number of octets and files within each leaf is listed after its identifier.

The fourth form permits access to the purely lexical lower level conversion between identifiers and pairpaths (no filesystem lookups take place).

This beta-level software has not been extensively tested.


   $ pt mkid foo bar zafp
   $ pt rmid bar
   removed: bar | ./pairtree_root/ba/r/
   $ touch ./pairtree_root/za/fp/zafp/{a,b,c}
   $ pt lstree -l
   zafp   0.3
   foo   0.0
   2 objects
   $ pt mkid ab c ''


-d directory

Specify pairtree directory. A "pairtree_root" component will be added on if not already present in directory.

-m format, --format format

Output in the given format, currently one of "ANVL", "XML", "JSON", or "Plain" (default).

-h, --help

Print extended help documentation.

-l, --long

Print more detailed listings.


Print full documentation.


Print the current version number and exit.


Options yet to come, for --bud, --force, --all.


Bug fixed so that Namaste tag is no longer under pairtree_root, but at the same level.

Subcommand mknode, rmnode, and lsnode renamed mkid, rmid, and lsid.


touch(1), nam(1)


John Kunze jak at ucop dot edu


Copyright 2008-2011 UC Regents. Open source BSD license.