https://www.youtube.com/watch?v=Q2mQBMSeZfQ
アニメ『鋼鉄ジーグ』 (1975)
今回は、zipsplitを使うと決めていたので、逆に連想するアニメを探して見てみました。古いアニメの1話ってほとんど見たことがありません。見てたかもしれませんが思い出せません。鋼鉄ジーグもそうです。今見るとどの名作も新鮮に感じます。
感想ですが、このアニメ実に面白いです。特に技術に関して。
レースカーの形を見ても、時代は昭和のようなんですが、宙(ひろし)のお父さんだけかなり進んだ技術力を持ってます。どうやって作ったんだか、秘密基地を一人で建造してしまってるんだからすごい。
現代のプログラマーなら今一番やりたいAIも、この時代にお父さんは極めています。ただのあごの割れたおじさんのようにしか見えないのだけど、自分の記憶をコンピュータに保存して、亡くなった後でも、的確に宙(ひろし)に(うざったいぐらいに)指示を出すのです。
お見事です。シュタインズゲートのアマデウス、いやソードアートオンラインの茅場晶彦にも引けをとりません。
さらにさらに、やんちゃなお父さんは、もっと無茶苦茶なことを、取り返しのつかないことをやってのけてしまいました。お父さん、実の息子にも手を出してたんです。もう息子さん、サイボーグに改造済とのことです(事後報告)。
自分が鋼鉄ジーグであることを明かされた宙は、突然基地を飛び出します。
そりゃそうですよねえ、いつのまにかサイボーグになってるんだから。
怒りますよ誰だって。
そして走るバイクの上で言い放つのです!
「父さん、父さんにそんな事情があるとは知らずに逆らってなんてして悪かったよ~(中略)~ 父さんの代わりにヒミカをやっつけてみせる!」
ええええーー!
なんて物分かりの良い子。そして、ヒミカって誰〜。
zip関連コマンド、今回は、zipsplitです。
man zipsplitとやると、なぜかzipnote(1)と表示されていますが、内容はzipsplitのようです。
zipnote(1) General Commands Manual zipnote(1) NAME zipsplit - split a zipfile into smaller zipfiles SYNOPSIS zipsplit [-t] [-i] [-p] [-s] [-n size] [-r room] [-b path] [-h] [-v] [-L] zipfile ARGUMENTS zipfile Zipfile to split.
使ってみます。適当にzipファイルを作ります。
takk@deb9:~/tmp$ ls takk@deb9:~/tmp$ echo Hello > a.txt takk@deb9:~/tmp$ zip a.zip a.txt adding: a.txt (stored 0%) takk@deb9:~/tmp$ ls a.txt a.zip takk@deb9:~/tmp$
引数にファイルを指定するだけです。
takk@deb9:~/tmp$ zipsplit a.zip 1 zip files will be made (100% efficiency) creating: a1.zip takk@deb9:~/tmp$ ls a.txt a.zip a1.zip takk@deb9:~/tmp$ ls -l 合計 12 -rw-r--r-- 1 takk takk 6 8月 2 19:41 a.txt -rw-r--r-- 1 takk takk 166 8月 2 19:41 a.zip -rw-r--r-- 1 takk takk 166 8月 2 19:41 a1.zip takk@deb9:~/tmp$
a1.zipというファイルができました。サイズはa.zipと同じみたいですが……。
比べてみます。
takk@deb9:~/tmp$ diff a.zip a1.zip takk@deb9:~/tmp$
一致してます。分割する必要がないくらい小さいので同じデータになったのでしょうか。
次は、大きなファイルで確認してみます。サイズ10MByteでランダムファイルを生成します。
takk@deb9:~/tmp$ dd if=/dev/urandom of=a.bin bs=1M count=10 10+0 レコード入力 10+0 レコード出力 10485760 bytes (10 MB, 10 MiB) copied, 0.0985101 s, 106 MB/s takk@deb9:~/tmp$ ls -lh a.bin -rw-r--r-- 1 takk takk 10M 8月 2 20:08 a.bin takk@deb9:~/tmp$
生成したファイルをzip圧縮します。
-rw-r--r-- 1 takk takk 10M 8月 2 20:08 a.bin takk@deb9:~/tmp$ zip a.zip a.bin adding: a.bin (deflated 0%) takk@deb9:~/tmp$ ls -lh 合計 21M -rw-r--r-- 1 takk takk 10M 8月 2 20:08 a.bin -rw-r--r-- 1 takk takk 11M 8月 2 20:09 a.zip takk@deb9:~/tmp$
圧縮して大きくなりましたが、ランダムデータなので仕方ないです。
では、zipsplitにかけてみます。
takk@deb9:~/tmp$ zipsplit a.zip zipsplit warning: Entry is larger than max split size of: 35978 zipsplit warning: use -n to set split size zipsplit error: Entry too big to split, read, or write (a.bin) takk@deb9:~/tmp$
エラーになりました。サイズが大きすぎるようです。
一応ファイル生成されていないか確認。
takk@deb9:~/tmp$ ls -lh 合計 21M -rw-r--r-- 1 takk takk 10M 8月 2 20:08 a.bin -rw-r--r-- 1 takk takk 11M 8月 2 20:09 a.zip takk@deb9:~/tmp$
されていません。
次は、サイズ10MByteのファイルを3分割して小さくしてから、zip圧縮して、zipsplitしてみます。
まず3分割。
takk@deb9:~/tmp$ rm a.zip takk@deb9:~/tmp$ split -n3 a.bin takk@deb9:~/tmp$ ls -lh 合計 21M -rw-r--r-- 1 takk takk 10M 8月 2 20:08 a.bin -rw-r--r-- 1 takk takk 3.4M 8月 2 20:21 xaa -rw-r--r-- 1 takk takk 3.4M 8月 2 20:21 xab -rw-r--r-- 1 takk takk 3.4M 8月 2 20:21 xac takk@deb9:~/tmp$
zip圧縮。
takk@deb9:~/tmp$ zip b.zip x* adding: xaa (deflated 0%) adding: xab (deflated 0%) adding: xac (deflated 0%) takk@deb9:~/tmp$ ls -lh 合計 31M -rw-r--r-- 1 takk takk 10M 8月 2 20:08 a.bin -rw-r--r-- 1 takk takk 11M 8月 2 20:23 b.zip -rw-r--r-- 1 takk takk 3.4M 8月 2 20:21 xaa -rw-r--r-- 1 takk takk 3.4M 8月 2 20:21 xab -rw-r--r-- 1 takk takk 3.4M 8月 2 20:21 xac takk@deb9:~/tmp$
zipsplit。
takk@deb9:~/tmp$ zipsplit b.zip zipsplit warning: Entry is larger than max split size of: 35978 zipsplit warning: use -n to set split size zipsplit error: Entry too big to split, read, or write (xaa) takk@deb9:~/tmp$
やはりサイズが大きいようです。3.4Mって大きいのでしょうか。
35978より小さくないといけないようです。
では100KByteぐらいのファイルをランダム生成して、3分割したものを使います。
takk@deb9:~/tmp$ rm * takk@deb9:~/tmp$ dd if=/dev/urandom of=a.bin bs=100K count=1 1+0 レコード入力 1+0 レコード出力 102400 bytes (102 kB, 100 KiB) copied, 0.000725059 s, 141 MB/s takk@deb9:~/tmp$ split -n3 a.bin takk@deb9:~/tmp$ ls -lh 合計 208K -rw-r--r-- 1 takk takk 100K 8月 2 21:27 a.bin -rw-r--r-- 1 takk takk 34K 8月 2 21:27 xaa -rw-r--r-- 1 takk takk 34K 8月 2 21:27 xab -rw-r--r-- 1 takk takk 34K 8月 2 21:27 xac takk@deb9:~/tmp$ zip b.zip x* adding: xaa (deflated 0%) adding: xab (deflated 0%) adding: xac (deflated 0%) takk@deb9:~/tmp$
では、zipsplitかけます。
takk@deb9:~/tmp$ zipsplit b.zip 3 zip files will be made (100% efficiency) creating: b1.zip creating: b2.zip creating: b3.zip takk@deb9:~/tmp$
上手くいったようです。元のファイルがそれぞれ単体の圧縮ファイルになったようですね。
後は、これがunzipできるか確認。
takk@deb9:~/tmp$ rm x* takk@deb9:~/tmp$ unzip b2.zip Archive: b2.zip inflating: xab takk@deb9:~/tmp$
解凍できました。
コメント