大きなファイルを小さな断片に分割する


65

大きな+ 4GBファイルを約500MBの小さなファイルに分割するにはどうすればよいですか。

また、元のファイルを取得するためにそれらを再度再構築するにはどうすればよいですか?



回答:


79

splitcatを使用できます。

たとえば次のようなもの

$ split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo.

(入力ファイル名がfooあり、最後の引数が出力プレフィックスです)。これにより、次のようなファイルが作成されますfoo.000 foo.001...

短いオプションを使用した同じコマンド:

$ split -b 100k -d -a 3 foo foo

正確なバイト数ではなく、行の境界で分割する場合は、「-line-bytes」を指定することもできます。

生成されたピースを再度組み立てるには、たとえば次を使用できます。

$ cat foo.* > foo_2

(シェルがシェルのグロビングの結果をソートし、部品の数がシステムに依存する引数の制限を超えないと仮定します)

次の方法で結果を比較できます。

$ cmp foo foo_2
$ echo $?

(これは0を出力するはずです)

あるいは、find / sort / xargsの組み合わせを使用して、ピースを再構築できます。

$ find -maxdepth 1 -type f -name 'foo.*'  | sort | xargs cat > foo_3

2
:このコマンドは試してみてくださいman split cat md5sum
ケビン・M

6
組み立てるとき、最後に期待される部分はcat foo.{000..NNN}どこかをお勧めしNNNます。そのようにして、ピースの1つが欠落している場合、エラーメッセージが表示されます。ただし-d、数値の接尾辞を取得することはGNUスプリットに固有であることに注意してください。他のプラットフォーム上で、あなたはで間に合わしなければならないfoo.aaafoo.aabなど
ジル「SO-ストップ悪さ」

1
またsplit、KB = 1000、K = 1024、MB = 1000 * 1000、M = 1024 * 1024などに
注意してください

1
これはすべきではない... cat > foo_3こと... cat >>foo_3
アルク

1
ユーティリティを使用して痛みを和らげることを決めた場合。rarそして7zip多くの場合、クロスプラットフォームを再構築するために、このような分割が容易に製造するのに使用されている
infixed

4

GUIを使用する場合は、アーカイブマネージャーを使用してこれを行うこともできます。「保存」->「その他のオプション」->「ボリュームに分割」の下を見てください。


5
私はそれを「コマンドライン」とタグ付けしましたが、答えに感謝します:)
Stefan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.