dirsplit --version (return code: 0)
0.3.3
dirsplit -H (return code: 0)
dirsplit [options] [advanced options] < directory >
-n|--no-act Only print the commands, no action (implies -v)
-s|--size NUMBER - Size of the medium (default: 4488M)
-m|--move Move files to target dirs (default: create mkisofs catalogs)
-l|--symlink similar to -m but just creates symlinks in the target dirs
-L|--hardlink like -l but creates hardlinks
-p|--prefix STRING - first part of catalog/directory name (default: vol_)
-f|--filter EXPR - Filter expression, see examples below and perlre manpage
--flat Flat dir mode, don't recreate subdirectory structure (not recommended)
-e|--expmode NUMBER, special exploration modes, used with directory argument
1: (default) native exploration of the specified directory, but file sizes
are rounded up to 2048 blocks plus estimated overhead for
filenames (see -o option)
2: like 1, but all files in directory are put together (as "atom") onto the
same medium. This does not apply to subdirectories, however.
3: like 2, but don't coalesc files when the size of the "atom" becomes too
large for the medium size (currently 4488M)
4: like 2, but the max. size of the atoms is limited to 4488M (storing the
rest on another medium)
-F|--follow Follow symlinks. Use with care!
-b|--blksize NUMBER, block size of the target filesystem (currently 2048).
-o|--overhead NUMBER, overhead caused by directory entries (as factor for the
filename length, default: 50, empiricaly found for Joliet+RR
with not-so-deep directory structure). Works in exploration
mode.
-a|--accuracy NUMBER (1=faster, large number=better efficiency, default: 500)
-S|--simple Simple/stupid/alphabetic mode
-T|--input FILENAME (or - for STDIN): List with sizes and paths, try:
find dir -type f -printf "%s %p
"
to get an example. Avoid duplicates! Unit suffixes are allowed.
-h|--help Show this option summary
-v|--verbose More verbosity
File sizes are expected to be in bytes, append modifier letters to multiply
with a factor, eg 200M (b,k,K,m,M,g,G for Bytes, Kb, KiB, Mb, MiB, Gb, GiB).
The default output mode is creating file catalogs useable with
mkisofs -D -r --joliet-long -graft-points -path-list CATALOG
Examples:
dirsplit -m -s 120M -e4 largedirwithdata/ -p /zipmedia/backup_ #move stuff into splitted backup dirs
dirsplit -s 700M -e2 music/ # make mkisofs catalogs to burn all music to 700M CDRs, keep single files in each dir together
dirsplit -s 700M -e2 -f '/other\/Soundtracks/' music/ # like above, only take files from other/Soundtracks
dirsplit -s 700M -e2 -f '!/Thumbs.db|Desktop.ini|\.m3u$/i' # like above, ignore some junk files and playlists, both letter cases
Bugs: overhead trough blocksize alignment and directory entry storage varies,
heavily depends on the target filesystem and configuration (see -b and -o).
You should compare the required size of the created catalogs, eg.:
for x in *list ; do mkisofs -quiet -D -r --joliet-long -graft-points \
-path-list $x -print-size; done
(output in blocks of 2048 bytes) with the expected size (-s) and media data
(cdrecord -v -toc ...).