Linking two files together

john wendel jwendel10 at comcast.net
Thu May 27 03:01:18 UTC 2010


On 05/26/2010 10:16 AM, Rector, David wrote:
> Hello,
>
> I have studied various filesystems, and am fairly familiar with how they are structured. However, I am currently stuck on trying to do what seems like a simple thing.
>
> I would like to join two files together without having to physically copy bytes (i.e. I have vary large files, so I don't want to use 'cat'). It seems to me that it should be possible to simply modify the file entry in the filesystem such that the last inode of the first file points to the first inode of the second file. I guess this is similar to a "hard link", but used to join files rather than simply have another pointer to one file.
>
> I have seen 'mmv' and 'lxsplit' and they all seem to do the same thing, namely they want to physically copy the bytes in order to join two files together.
>
> Is there any such utility in linux to perform such a hard link to join or connect two files together without having to copy bytes?
>
> Thanks for your help.
>
> Dave Rector
> *:^)


You could create a shared library that replaces the libc versions of 
"open", "read", "write", "seek", "lseek", "close", ... (whatever your 
app needs). It would open multiple files, but return a single file 
handle to the caller. It would need to track the "virtual" file pointer 
by examining each read, write, seek call and switch "real" files as 
required. Not trivial, but also not rocket science. Just handling 
sequential reads is pretty simple. Full file handling semantics would be 
a pain.

Regards,

John



More information about the users mailing list