#navi(../)
* 大きなファイルを分割して結合する方法・split,cat [#g3659b72]
USBメモリに大きなファイルをコピーしようとしたら、FAT32の制限で1ファイル4Gまでという制限にひっかかってしまったことなどありませんか?~
または、1つの外部メモリに入りきらずに複数の媒体にわけて保存したい場合など、splitコマンドとcatコマンドを使えば、大きなファイルの分割と結合が可能です。
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* splitコマンドで分割 [#k0c3b468]
splitコマンドで分割するファイルは以下のWallpaper.pngを使用します。
sakura@ubuntu1204:~/wk$ ls -lh
合計 2.2M
-rw-rw-r-- 1 sakura sakura 2.2M 11月 10 01:03 Wallpaper.png
** キロバイト単位で分割 [#oafb7e43]
以下の構文で指定したキロバイト単位で分割することができます。
split -b 分割値k 元ファイル 分割したファイル名の先頭文字列
-実行例
sakura@ubuntu1204:~/wk$ split -b 500k Wallpaper.png SliceWallpaper.
sakura@ubuntu1204:~/wk$ ls -l
合計 4400
-rw-rw-r-- 1 sakura sakura 512000 11月 10 01:06 SliceWallpaper.aa
-rw-rw-r-- 1 sakura sakura 512000 11月 10 01:06 SliceWallpaper.ab
-rw-rw-r-- 1 sakura sakura 512000 11月 10 01:06 SliceWallpaper.ac
-rw-rw-r-- 1 sakura sakura 512000 11月 10 01:06 SliceWallpaper.ad
-rw-rw-r-- 1 sakura sakura 203867 11月 10 01:06 SliceWallpaper.ae
-rw-rw-r-- 1 sakura sakura 2251867 11月 10 01:03 Wallpaper.png
** 各の単位での分割 [#c6e75345]
- バイト単位
split -b 分割値 元ファイル 分割したファイル名の先頭文字列
- キロバイト単位
split -b 分割値k 元ファイル 分割したファイル名の先頭文字列
- メガバイト単位
split -b 分割値m 元ファイル 分割したファイル名の先頭文字列
* 分割したファイルの結合 [#p6f90666]
以下の構文で分割したファイルを結合して1つにすることがでいます。
cat 分割ファイル > 結合ファイル
上記の実行例で分割したファイルを1つに結合してみます。
+分割されたファイル
sakura@ubuntu1204:~/wk$ ls -ltr
合計 4400
-rw-rw-r-- 1 sakura sakura 2251867 11月 10 01:03 Wallpaper.png
-rw-rw-r-- 1 sakura sakura 512000 11月 10 01:06 SliceWallpaper.ab
-rw-rw-r-- 1 sakura sakura 512000 11月 10 01:06 SliceWallpaper.aa
-rw-rw-r-- 1 sakura sakura 512000 11月 10 01:06 SliceWallpaper.ad
-rw-rw-r-- 1 sakura sakura 512000 11月 10 01:06 SliceWallpaper.ac
-rw-rw-r-- 1 sakura sakura 203867 11月 10 01:06 SliceWallpaper.ae
+ catコマンドとリダイレクトを利用して結合します。
sakura@ubuntu1204:~/wk$ cat SliceWallpaper.* > JoinWallpaper.png
+元ファイルと結合したファイルのdiffをとりました。
以下のdiffコマンドでファイル内容が同じあることが確認できました。
sakura@ubuntu1204:~/wk$ diff Wallpaper.png JoinWallpaper.png
sakura@ubuntu1204:~/wk$ echo $?
0
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)