fusefile ======== This project implements a "fuse" device to mount as a single file that is a concatenation of fragments of one or more files. By default the fused file is read-only. A writeable fused file is set up by associating the mount with a scratch-pad FUSE file mount for combining file fragments. == SYNOPSIS *fusefile* [_fuse options_] *mountpoint* _filename/from-to_ ... ## DESCRIPTION *fusefile* is FUSE file mount that presents a series of fragments of other files as a contiguous concatenation. It bind mounts a driver on top of the file mountpoint to present the nominated file fragments as a single, contiguous file. The fragment arguments include the filename of a source file, and optionally start and end byte positions. All in all there five variations: * __filename__ include all of the file. * __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. * __filename/from__ include the file from the given start position, to end. * __filename/-to__ include the file from beginning to the given end position (not included). * __filename/from-to__ include the file from the given start position, up to the given end position (not included). ## EXAMPLES Insert file "y" into file "x" at position 1200: $ fusefile -ononempty x x/-1200 y x/1200 The bind mount shadows the original file "x", and presents the composite instead. Make file y be a swap of the beginning and end of file "x", at position 2442: $ fusefile y x/2442 x/-2442 ## NOTES Note that **fusefile** opens the nominated source file(s) before bind mounting. With the fuse option __-ononempty__ it will bind over an non-empty file, which may be useful. The source file descriptors remain open, but the source fragments are not recomputed. If a source file changes or reduces in size, anything may happen. If the mountpoint file doesn't exist, then **fusefile** creates it, and removes it when unmounted. ## AUTHOR Ralph Rönnquist