DragonFly On-Line Manual Pages
FPART(1) DragonFly General Commands Manual FPART(1)
NAME
fpart - Sort and pack files into partitions.
SYNOPSIS
fpart [-h] [-V] -n num | -f files | -s size [-i infile] [-a] [-o outfile]
[-e] [-v] [-l] [-b] [-y pattern] [-Y pattern] [-x pattern]
[-X pattern] [-z] [-Z] [-d depth] [-D] [-L] [-w cmd] [-W cmd]
[-p num] [-q num] [-r num] [FILE or DIR...]
DESCRIPTION
The fpart utility helps you sort file trees and pack them into bags
(called "partitions").
GENERAL OPTIONS
-h Print help
-V Print version
PARTITION CONTROL
-n num Create exactly num partitions and try to generate partitions with
the same size and number of files. This option cannot be used in
conjunction with -f, -s or -L.
-f files
Create partitions containing at most files files. This option can
be used in conjunction with -s and -L.
-s size
Create partitions with a maximum size of size bytes. With this
option, partition 0 may be used to handle files that do not fit
in a regular partition, given the provided size limit. This
option can be used in conjunction with -f and -L.
INPUT CONTROL
-i infile
Read file list from infile. If infile is "-", then list is read
from stdin.
-a Input contains arbitrary values; just sort them (do not crawl
filesystem). Input must follow the "size(blank)path" scheme.
This option is incompatible with crawling-related options.
OUTPUT CONTROL
-o outfile
Output partitions' contents to outfile template. Multiple files
will be generated given that template. Each outfile will get
partition number as a suffix. If outfile is "-", then partitions
will be printed to stdout, with partition number used as a prefix
(so you can grep partitions you are interested in, or do whatever
you want).
-e When adding directories (see DIRECTORY HANDLING ), add an ending
"/" to each directory entry.
-v Verbose mode (may be specified more than once).
FILESYSTEM CRAWLING CONTROL
-l Follow symbolic links (default: do not follow).
-b Do not cross filesystem boundaries (default: cross).
-y pattern
Include files or directories matching pattern only (and discard
all other files). This option may be specified several times. It
does not apply when computing size of directories to be added as
leaf entries (the computed size will then include every file
within directory).
-Y pattern
Same as -y but case insensitive. This option may not be available
on your platform (at least FreeBSD and GNU/Linux support it,
Solaris does not).
-x pattern
Exclude files or directories matching pattern. This option can
be used in conjunction with -y and -Y. In this case, exclusion
is performed after. This option may be specified several times.
It does not apply when computing size of directories to be added
as leaf entries (the computed size will then include every file
within directory).
-X pattern
Same as -x but case insensitive. This option may not be available
on your platform (at least FreeBSD and GNU/Linux support it,
Solaris does not).
DIRECTORY HANDLING
-z Pack empty directories. By default, fpart will pack files only
(except when using the -d or -D options). This option can be
useful for tools such as rsync(1) to be able to recreate a full
file tree when used with fpart (e.g. using rsync's --files-from
option). See the -Z option to also pack un-readable directories.
-Z Implies -z. Treat un-readable directories as empty, causing them
to be packed anyway.
-d depth
After a certain depth, pack directories instead of files
(directories themselves will be added to partitions, instead of
their content).
-D Implies -z. Pack leaf directories: if a directory contains files
only, it will be packed as a single entry.
LIVE MODE
-L Live mode (default: disabled). When using this mode, partitions
will be generated while crawling filesystem. This option saves
time and memory, but does not give partition 0 a special meaning
(see option -s ). As a consequence, it can generate partitions
larger than the size specified with option -s. This option can
be used in conjunction with options -f and -s, but not with
option -n.
-w cmd When using live mode, execute cmd when starting a new partition
(before having opened next output file, if any). cmd is run in a
specific environment that provides several variables describing
the state of the program: FPART_HOOKTYPE ("pre-part" or "post-
part"), FPART_PARTFILENAME (current partition's output file
name), FPART_PARTNUMBER (current partition number),
FPART_PARTSIZE (current partition size), FPART_PARTNUMFILES
(number of files in current partition), FPART_PID (PID of fpart).
Note that variables may or may not be defined, depending of
requested options and current partition's state when the hook is
triggered. Also, note that hooks are executed in a synchronous
way while crawling filesystem, so 1) avoid executing commands
that take a long time to return as it slows down filesystem
crawling and 2) do not presume cwd (PWD) is the one fpart has
been started in, as it is regularly changed to speed up crawling
(use abolute paths within hooks).
-W cmd Same as -w, but executes cmd when finishing a partition (after
having closed last output file, if any).
SIZE HANDLING
-p num Preload each partition with num bytes.
-q num Overload each file size with num bytes.
-r num Round each file size up to next num bytes multiple. This option
can be used in conjunction with overloading, which is done
*before* rounding.
EXAMPLES
Here are some examples:
fpart -n 3 -o var-parts /var
Produce 3 partitions, with (hopefully) the same size and number
of files. Three files: var-parts.0, var-parts.1 and var-parts.2
are generated as output.
fpart -s 4724464025 -o music-parts /path/to/music ./*.mp3
Produce partitions of 4.4 GB, containing music files from
/path/to/music as well as MP3 files from current directory; with
such a partition size, each partition content will be ready to be
burnt to a DVD. Files music-parts.0 to music-parts.n, are
generated as output.
find /usr ! -type d | fpart -f 10000 -i - /home | grep '^0:'
Produce partitions containing 10000 files each by examining /usr
first and then /home and display only partition 0 on stdout.
du * | fpart -n 2 -a
Produce two partitions by using du(1) output. Fpart will not
examine the file system but instead use arbitrary values printed
by du(1) and sort them.
SEE ALSO
du(1), find(1), fpsync(1), grep(1), rsync(1)
AUTHOR, AVAILABILITY
Fpart has been written by Ganael LAPLANCHE and is available under the BSD
license on http://contribs.martymac.org
BUGS
No bug known (yet).
DragonFly 6.5-DEVELOPMENT November 18, 2011 DragonFly 6.5-DEVELOPMENT