there are plenty of compression tools on the mac. gzip and bzip2.
Lately, I like bzip2. This works a little easier on linux, especially if
the original file is split into a lot of smaller ones.
$ gzip TestFile
$ ll
total 120944
-rw-r--r--@ 1 andya 501 61921000 May 31 22:01 TestFile.gz
$ split -b 10m TestFile.gz
$ openssl dgst -sha256 TestFile.gz xa*
SHA256(TestFile.gz)= cd041d79b4af1a54b524602363a18e67201c4acb03675dfebcae9109d8707367
SHA256(xaa)= a3d803049aee16cbbfd679668164707eb9053488fb2ec5720f282a711ee8c451
SHA256(xab)= 0a79e26c77cb47ec09f5cf68cfa45ea8f52f5157cad07c0ac187eaf0ae59ff79
SHA256(xac)= 0f556e8e93dcb41cb3ab20454ab46c016d6596316d75316d810f45e7c2b3682e
SHA256(xad)= abc3db83737346a8af6ac7ba9552c4b71cf45865f7b9faded54f1683b2afd077
SHA256(xae)= 3afbad7b68a1d1c703865422e40cbd68ca512a652f985a0714258b7d936ad0f6
SHA256(xaf)= 11879853fcfbe6df6fb718e1166d4dcae7e0e6ebd92be6c32c104c0a28f0439a
keep the hash of the smaller file, in case you get a error on the far end of the transfer.
That way you only need to resend the small file that's corrupt.
put the the TestFile back together.
$ cat xa* > ScratchFile
$ openssl dgst -sha256 TestFile.gz ScratchFile
SHA256(TestFile.gz)= cd041d79b4af1a54b524602363a18e67201c4acb03675dfebcae9109d8707367
SHA256(ScratchFile)= cd041d79b4af1a54b524602363a18e67201c4acb03675dfebcae9109d8707367