Some background you can happily skip
Twenty years ago or so, when navigating the web costed a lot, when I was a Windows-only user, and when CDs/DVDs were a large storage means, and when sharing video files with a friend or relative would sometimes require to split the file over multiple CDs/DVDs, copying them on the other computer's person and then rejoining the pieces, I used to use HJSplit. Worked like a charm.
The motivation
Fast-forward 20 years, I recently found myself in need for such a utility on Linux, due to the slow/unreliable connection not allowing me to easily scp
stuff across physically very distant Linux systems. The solution that came to mind was to split the file and transfer the pieces, then rejoin them.
That's how I found HJSplit was Windows-only and that lxsplit
existed and worked like a charm as well, so all is good.
My question
But lxsplit
is abandoned since 2008, so maybe some other (better?) solution has come up in these 15 years.
What is the state of the art in this field, i.e. splitting and rejoining big binary files, on Linux?¹
Additional motivation
I also thought that conceptually speaking, splitting a file and rejoining it is a very simple task, so I wondered whether I could write my own program for doing so. I tried, and got something working in a few hours, but it's at least ~5 times slower than lxsplit
. Before diving into profiling and benchmarking, I wanted to know whether there's other similar programs that have even better performance than lxsplit
.
(¹) I'm not interested in alternative workflows for accomplishing the original task of transfering a big file between two systems. Yes, today you'd probably upload it to Dropbox/Onedrive/GoogleDrive/whatever from one system and download it from the other.
split
command?rsync
, a restartable copy command?rsync
. It's simpler and more efficient to use than either of your proposed transfer mechanisms