スキップ可能ないくつかの背景
約20年前、Web検索の費用がかかった時、Windows専用ユーザーだった時、CD/DVDが大容量記憶手段であり、友人や親戚とビデオファイルを共有するときにファイルを複数にコピーするには分割が必要な時もありました。 CD / DVDを別のコンピュータにコピーし、クリップを再結合するために使用しました。HJスプリット。魅力のように動作します。
やる気
scp
20年が過ぎた今、私は最近Linuxでこれらのユーティリティが必要であることに気づきました。接続が遅いか信頼できないため、物理的に離れているLinuxシステム間でデータを簡単に転送できなかったためです。私が思いついた解決策は、ファイルを分割して部分を転送して再結合することでした。
これがHJSplitがWindowsでのみ機能することがわかった理由です。lxsplit
存在し、魅力のように動作するので、すべて良いです。
私の質問
しかし、lxsplit
2008年以降に廃棄されたため、15年間に別の(より良い?)ソリューションが登場した可能性があります。
Linuxでは、この領域(大容量のバイナリファイルの分割と再マージなど)の最先端の技術は何ですか?
追加のやる気
また、概念的にファイルを分割して再結合するのは非常に簡単な作業だと思います。私はそれを試して数時間以内に何かを得ましたが、少なくともlxsplit
。lxsplit
(1)2つのシステム間で大容量ファイルを転送する元のジョブの代替ワークフローには興味がありません。はい、今日はあるシステムからDropbox / Onedrive / GoogleDriveなど何でもアップロードし、別のシステムからダウンロードできます。
答え1
これsplit
このコマンドは古代からUnixの一部であり、もともと行分割テキスト処理コマンドでしたが、現代の実装ではバイナリファイルも処理できます。split -b
にありますPOSIXそして忙しい箱。
分割するには、セグメントサイズ(最後のセグメントが残りのセグメントになる)とセグメントファイル名のプレフィックスを選択します。 (番号スタイルやファイル名拡張子は選択できません。)
split -b 1440k myfile.bin part-
部品を接続するには、cat
部品に.shellワイルドカードを使用すると正しい順序になります。
cat part-?? >myfile.bin
正しい順序で部品を受け取ることができますが、欠落している部品がないかどうかを確認することはできません。また、異なるファイルの部分が混在するのを防ぐ方法はありません。cksum
、または両方のシステムで使用できるコマンドなどのコマンドをmd5sum
使用して、元のファイルと再アセンブリされたファイルのチェックサムを計算します。md5
答え2
私が思いついた解決策は、ファイルを分割して部分を転送して再結合することでした。
まあ、これはXYの問題のように聞こえます。ただrsyncを使用してください:
rsync -avzh verybigfileordirectory [email protected]:/home/user/destination/
必要に応じて停止して開始できます。リモート側で欠落しているデータ(小さなネゴシエーションオーバーヘッド)を特定し、そのデータのみをコピーします。両端にrsyncが必要です。
答え3
特にバイナリファイル用のzipを使用することをお勧めします。
一部のユーザーは、特定のDOSの臭いのために注意することもできます。 :-)