6月6日に受け取った JPEG のファイル群は、なぜか「ファイル名606.jpg」というスタイルでした。 0606 ではなく、66 でもなく、606 です。個人的には非常に許せないスタイルなので、ちょっと変更しました。
$ for f in $(ls *606.jpg); do mv $f 20090606${f/606}; doneこれはこれで目的を達成するには十分なのですが、汎用性に欠けていることは否めません。 そこで、''getopt'' でも使ってスクリプトでも作っておくかな、と思いましたが、''getopt'' を使った方が良いのか ''getopts'' を使った方が良いのかがパッと出てきません。片方は bash 組み込みのコマンドであり、もう片方は C 言語で記述されたバイナリです。 ''man'' を読めばすぐに分かることですが、''man -a'' をエイリアス登録してあるため、次々に出てくるマニュアルが脳裏をよぎります。
そんなこんなで、中身をのぞいてみることにしました。
$ nm -ax /usr/bin/getopt 00001000 03 00 0010 00000004 __mh_execute_header 00000000 01 00 0201 00000018 _exit 00000000 01 00 0201 0000001e _getopt$UNIX2003 00000000 01 00 0200 0000002f _optarg 00000000 01 00 0200 00000037 _optind 00000000 01 00 0201 0000003f _printf 00000000 01 00 0201 00000047 _putchar $ nm -ax /usr/bin/getopts nm: file: /usr/bin/getopts is not an object file $ cat /usr/bin/getopts #!/bin/sh # $FreeBSD: src/usr.bin/alias/generic.sh,v 1.2 2005/10/24 22:32:19 cperciva Exp $ # This file is in the public domain. builtin ${0##*/} ${1+"$@"}と、まぁ、こんなことをやっていたらそもそもの目的を失ってしまいましたが、とりあえずbash でスクリプトを作るなら ''getopts'' の方が良いのかな、と思いました。使いやすさの問題ではなく、読むべきマニュアルが局所化されそうなので。。。
それにしても似たような画像ファイルが増えてくると何が何やら、という気が強くなってきます。主にオリエンテーリング大会のコースなわけですが。もうちょい効率的に管理しておきたいものです。
0 件のコメント:
コメントを投稿