4 This project implements a "fuse" device to mount as a single file that
5 is a concatenation of fragments of one or more files. The fused file
6 allows overwriting the parts files, but not changing their sizes, and
7 only for parts files that are writable upon first access.
9 FUSE file mount for combining file fragments.
12 *fusefile* [_fuse options_] *mountpoint* _filename/from-to_ ...
16 *fusefile* is FUSE file mount that presents a series of fragments of
17 other files as a contiguous concatenation. It bind mounts a driver on
18 top of the file mountpoint to present the nominated file fragments as
19 a single, contiguous file.
21 The fragment arguments include the filename of a source file, and
22 optionally start and end byte positions. All in all there five
25 * __filename__ include all of the file.
27 * __filename/__ include all of the file named with "/" in the pathname. This case requires a final "/", since the last "/" separates the filename from the position details.
29 * __filename/from__ include the file from the given start position, to end.
31 * __filename/-to__ include the file from beginning to the given end position (not included).
33 * __filename/from-to__ include the file from the given start position, up to the given end position (not included).
37 Insert file "y" into file "x" at position 1200:
39 $ fusefile -ononempty x x/-1200 y x/1200
40 The bind mount shadows the original file "x", and presents the
43 Make file y be a swap of the beginning and end of file "x", at
46 $ fusefile y x/2442 x/-2442
50 Note that **fusefile** opens the nominated source file(s) before bind
51 mounting. With the fuse option __-ononempty__ it will bind over an
52 non-empty file, which may be useful. The source file descriptors
53 remain open, but the source fragments are not recomputed. If a source
54 file changes or reduces in size, anything may happen.
56 If the mountpoint file doesn't exist, then **fusefile** creates it,
57 and removes it when unmounted.
61 Ralph Rönnquist <ralph.ronnquist@gmail.com>