Goの勉強も兼ねて、適当な課題見つけてCLIツールをちょこちょこ作っているのですが、他の人が使っても便利かもしれないものが出来たので紹介します。
指定したディレクトリ配下のファイル一覧を再帰的に表示するツールです。
$ filist -s -M . a.txt 24 3d3a42d900823afcfdfeb6de338bcec1 b/1.txt 81 ae23e0b40e773ac132f477f661e89b86 b/2.txt 163 494ba81d0d828ff9a244da627b5ece47
ファイルパス以外にも、サイズ、更新日時、MD5、SHA1などといった情報も一緒に出力できます。
オプションは下記の通りです。
Usage: filist [options] directory ... options -r, --rel Print relative path (If neither 'rel' nor 'abs' is specified, 'rel' will be printed first column.) -a, --abs Print absolute path -s, --size Print file size -m, --mtime Print modification time -M, --md5 Print MD5 hash -S, --sha1 Print SHA-1 hash --sha256 Print SHA-256 hash -h, --help Help
オプションの指定順に情報が並ぶので、例えば先頭にMD5で、その後にファイル名、、といった指定もできます。
$ filist -M -r . 3d3a42d900823afcfdfeb6de338bcec1 a.txt ae23e0b40e773ac132f477f661e89b86 b/1.txt 494ba81d0d828ff9a244da627b5ece47 b/2.txt
全てのファイルにmd5sumかけたい、、っていうようなときに、コマンド組み合わせてワンライナーで書けなくないですが、こういったツール用意しておくと便利かなーって思って作りました。
Goだと各OS用の実行ファイルをシングルバイナリで簡単に提供できるってのがほんと素晴らしいです。