seqコマンドでチープトリック

7-1.ファイル・アーカイブ

TVアニメ『ジョジョの奇妙な冒険』
安心して見れるアニメの一つですね。

エンディングの洋楽が懐かしい曲ばかり。
(JOJO好きなら当たり前に知ってることですが)そこまでではないので、ずっと気づきませんでしたが、作品中には洋楽にまつわる名称が多く使われているそうです。

チープトリックというスタンドが登場します。このスタンドも由来はバンド名。トム・クルーズ主演の『トップガン』の劇中歌に使われていた「Mighty Wings」を歌ってたバンドです。

チープトリック、コマンドラインでも使ってみましょう。
指定したサイズのファイルが欲しい時、ddコマンドがよく使われると思います。

ddコマンドは指定したサイズのファイルを生成することができますが、いろいろオプションが複雑で、いざ使おうと思うと腰が重たくなってしまいますよね。

代わりに働いてくれるスタンドでもいれば。。。

そこで、seqコマンド。
データの中身は気にならない。きりのよいサイズのファイルで良いなら、seqでも生成できるんです。

さっそく1024Byteのファイルを生成してみましょう。

takk~$ seq 283 > a
takk~$ ls -l a
-rw-r--r-- 1 takk takk 1024  9月 12 21:33 a
takk~$ 

どうでしょう。
タネを知れば、すごくくだらないですが、すくない手数で作れてしまうのが魅力です。

その他のサイズも確認してみましょうか。

takk~$ seq 539 > b
takk~$ seq 795 > c
takk~$ seq 2 1041 > d
takk~$ seq 2 1861 > e
takk~$ seq 3 3499 > f
takk~$ seq 2 165669 > g
takk~$ ls -l
合計 1068
-rw-r--r-- 1 takk takk    1024  9月 12 21:40 a
-rw-r--r-- 1 takk takk    2048  9月 12 21:40 b
-rw-r--r-- 1 takk takk    3072  9月 12 21:40 c
-rw-r--r-- 1 takk takk    4096  9月 12 21:40 d
-rw-r--r-- 1 takk takk    8196  9月 12 21:40 e
-rw-r--r-- 1 takk takk   16384  9月 12 21:40 f
-rw-r--r-- 1 takk takk 1048576  9月 12 21:40 g
takk~$ 

ちなみに、処理時間は気になりません。

takk~$ time dd if=/dev/zero of=out.bin bs=1024 count=1
1+0 レコード入力
1+0 レコード出力
1024 バイト (1.0 kB) コピーされました、 0.000258694 秒、 4.0 MB/秒

real	0m0.002s
user	0m0.000s
sys	0m0.000s
takk~$ time seq 283 > a

real	0m0.002s
user	0m0.000s
sys	0m0.000s
takk~$ time dd if=/dev/zero of=out.bin bs=1024 count=1024
1024+0 レコード入力
1024+0 レコード出力
1048576 バイト (1.0 MB) コピーされました、 0.00784731 秒、 134 MB/秒

real	0m0.010s
user	0m0.004s
sys	0m0.004s
takk~$ time seq 2 165669 > g

real	0m0.010s
user	0m0.004s
sys	0m0.004s
takk~$ 

コマンドラインでデバッグしている時などに、急に特定サイズのファイルが欲しくなったりした時、ddコマンドの長い打ち込みで作業のテンポを崩したくない時に、使うことがあります。

数字覚えるのたいへん。とも言えますが、元来プログラマーって数字には強いですよね。例えばプログラマーだったら誰もが32768って数字とか暗記しているハズ(たぶん)です。

でも私が実際に使うのは、seq 283ぐらいですけど。ddが長いのであればエイリアス作れば良いですし。

まあ所詮、チープトリックですね。

コメント

タイトルとURLをコピーしました