atime/mtimeが当月1日から今日までのファイルを生成するワンライナー

logrotate のテストのため、過去のテストファイルを生成する必要があったのでメモ。

touch コマンドで日時(atime/mtime)を指定してファイルを生成します。

% DAY=$(date +%d);for i in $(seq -w 01 $DAY);do ;touch -d "$(date +%Y/%m)/$i 04:00:00" test.$(date +%Y%m)$i.log ;done;
%ls -l test.*
-rw-r--r-- 1 kmn23 kmn23 0 Jan  1 04:00 test.20150101.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan  2 04:00 test.20150102.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan  3 04:00 test.20150103.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan  4 04:00 test.20150104.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan  5 04:00 test.20150105.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan  6 04:00 test.20150106.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan  7 04:00 test.20150107.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan  8 04:00 test.20150108.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan  9 04:00 test.20150109.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan 10 04:00 test.20150110.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan 11 04:00 test.20150111.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan 12 04:00 test.20150112.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan 13 04:00 test.20150113.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan 14 04:00 test.20150114.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan 15 04:00 test.20150115.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan 16 04:00 test.20150116.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan 17 04:00 test.20150117.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan 18 04:00 test.20150118.log
-rw-r--r-- 1 kmn23 kmn23 0 Jan 19 04:00 test.20150119.log

ctime は現在の時刻に設定する事はできるが、過去や未来の時間に設定する事はできない。
( ファイルシステムを直接いじれば、その限りではないだろうが...)

参考
http://keyamb.hatenablog.com/entry/2012/09/25/210432
http://x68000.q-e-d.net/~68user/unix/pickup?%A5%BF%A5%A4%A5%E0%A5%B9%A5%BF%A5%F3%A5%D7
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230905/