CATALOG FILE STRUCTURE for finddupe.c
copyright(c)2009 Scott Mitchell Jennings
under the terms of the GNU General Public License GPL3+
Thu, 26 Feb 2009 07:51:57 -0800

By default, catalog files are kept in the directory "~/.finddupe".

The catalog files start with a single line identifying it's
creator, catalog version number, and a blank line.  The first
line after the blank one starts with the volume label, a " : ",
the volume UUID, another " : ", the mount point it was last seen
on (ending in //), another " : ", a count of the number of files
in the catalog, another " : ", and optionally a free form comment
string.

 EXAMPLE:
Volume_Label : a220-2b67b6fc5d08 : /usr// : 478329 : This is my /usr filesystem

The fourth and subsequent lines each document a single regular
file found on that filesystem, starting with the pathname
(relative to the mount point, and ending in //), the file size in
bytes, the files size in human readable form (in parenthesis),
the file's mtime in human readable form YYYYmmmdd_hh:mm:ss and
seconds from epoch (in square braces), the file's inode number
and link count, the file's MD5sum (all zeros if not yet known),
and optionally a free form comment.

 EXAMPLE:
bin/beep// 7412B(7.24K) 2008Aug16_8:43:47[1218901427] i1289203(1) (91d5753b9cf06afe34d15b323267acf0) This is a file comment.

Catalog files are given the name of the volume's label, if it has
one, else it's UUID if it has one (fuse filesystems often don't),
else it's mount point (with '/'s changed to '\'s).

When a filesystem is encountered with the same catalog name, but
a different UUID, the UUID is appended for a longer catalog
name.

When finddupe's memory copy of a catalog is changed, a lockfile is
created and locked to prevent another instance of finddupe from
trying to modify that catalog at the same time.

When finddupe first updates a catalog, the old copy is renamed as
a backup by prepending a '.' to it's filename. The backup is only
created once per invocation of finddupe, even when the catalog is
written repeatedly.

There are command line switches to ignore all catalogs (-n), or
to open all catalogs either for comparison against the command
line paths (-c), or against each other as well (-a).

-smj <smudgeinator@users.sourceforge.net>

Following is an example of a catalog file contents:
---------------------------------------------------
This is a v1 finddupe catalog file produced by finddupe v2.1.0 (DO NOT EDIT)

USR_PARTITION : cf39952b-da42-402d-f290-2b87a4fe5e09 : /usr// : 12 : 
home/smj/src/finddupe/Catalog_File_Structure// 1782B (1.75K) 2009Jan18_17:51:43[1232329903] i469788178(1) (108ca2fa2a613d0d7d510dad38cc8661) 
home/smj/src/finddupe/README// 5072B (4.97K) 2009Jan19_9:18:9[1232385489] i469788169(1) (2b5af42ae960be3e014e30f6ebb0b10f) 
home/smj/src/finddupe/historic/findd13/finddupe.c// 5558B (5.43K) 2009Jan18_12:48:54[1232311734] i268484932(1) (3c7622b30a3000e41e770de46eb621a9) 
home/smj/src/finddupe/historic/findd13/README// 3166B (3.94K) 2009Jan18_12:48:54[1232311734] i268461112(1) (52c30858b2660dba6a0e640039b5ac95) 
home/smj/src/finddupe/historic/findd13/Makefile// 949B 2009Jan18_12:48:54[1232311734] i268460621(1) (58b0e5853e91695c1b5aa5ff4667f1d6) 
home/smj/src/finddupe/historic/findd13.tar.gz// 3790B (3.71K) 2009Jan18_12:48:54[1232311734] i135738855(1) (bf695f704ffcc7c4e2294dc0377dd481) 
home/smj/src/finddupe/historic/findd13.lsm// 608B 2009Jan18_12:48:54[1232311734] i135654345(1) (d80691468b0c698c560160b29c26aa87) 
home/smj/src/finddupe/historic/README// 3166B (3.94K) 2009Jan18_12:48:54[1232311734] i135654343(1) (52c30858b2660dba6a0e640039b5ac95) 
home/smj/src/finddupe/finddupe.c// 99141B (96.8K) 2009Jan19_18:2:25[1232416945] i469788167(1) (71ef3e2f1b9957ef7915378fd5f59218) 
home/smj/src/finddupe/Theory_of_Operation// 4022B (3.95K) 2009Jan18_18:34:37[1232332477] i469788166(1) (be0f528ca93a3275d241f45aa1d7a967) 
home/smj/src/finddupe/Makefile// 883B 2009Jan18_12:48:54[1232311734] i939598117(1) (fd07efd2a0a573843dcfe49def946c47) 
home/smj/src/finddupe/GPL// 35068B (34.2K) 2009Jan18_12:48:54[1232311734] i939598111(1) (f27defe1e96c2e1ecd4e0c9be8967949) 
