Linux上でファイル名の検索
入出力だけでも「ライブラリ関数を使わない」縛りは負担なのに、mallocという強敵が待っていたか…。glibcソース探訪は定義探しだけでも大変。
stdlib.hが複数箇所に全く別のヘッダファイルとして存在していることも発見した。まあ、だからどうというわけでもないんだけど、普段見ている名前が実は一意なものではなかったという感じがして*1、ちょっと面白かったんだ。
そんなソース発掘中にたまたま見つけた便利な探索の合わせ技を紹介。えーと、もっとふつうな方法がありそうなもんだけど、findもlocateもなかなか思った風に動作してくれなかったもので。
$ find ./* | grep hogehoge
探したいディレクトリ以下のすべてのファイルを列挙させて、その出力をgrepしてるわけです。乱暴だと怒られそうな気もする。
*1:同名でも、ロケーションによってファイル同士は区別できているようです