2010年1月27日水曜日

シェルスクリプトでファイルの更新日時比較

シェルスクリプトでファイルの更新日時(mtime)の比較をやる方法についてメモ。

(方法1) test の -nt と -ot
[root@centos5 ~]# strings /usr/bin/test | grep FILE1
  FILE1 -ef FILE2   FILE1 and FILE2 have the same device and inode numbers
  FILE1 -nt FILE2   FILE1 is newer (modification date) than FILE2
  FILE1 -ot FILE2   FILE1 is older than FILE2
test のヘルプってどうやって出すんだ。。。

(方法2) date -r
[root@centos5 ~]# date -r /etc/grub.conf +"%F %T"
2010-01-24 19:58:18
[root@centos5 ~]# date -r /etc/grub.conf +%s
1264330698
%s seconds since 1970-01-01 00:00:00 UTC
なので、シェル変数に入れていろいろできる。

(方法3) stat -c
[root@centos5 ~]# stat -c "%Y" /etc/grub.conf 
1264250945
[root@centos5 ~]# stat -c "%Y" /boot/grub/grub.conf 
1264330698
[root@centos5 ~]# ls -l /etc/grub.conf 
lrwxrwxrwx 1 root root 22 Jan 23 21:49 /etc/grub.conf -> ../boot/grub/grub.conf
[root@centos5 ~]# ls -l /boot/grub/grub.conf 
-rw------- 1 root root 830 Jan 24 19:58 /boot/grub/grub.conf
これですが、シンボリックリンクの場合は注意する必要があるようです。あと、システムが古いと -c オプションが無いかもしれません。

(方法4) touch -t で一時ファイルを作って、find を使う。

ネットではこの(方法4)が散見されました。

2009年11月14日土曜日

自宅の開発環境

ブログを書くのが初めてで、何を書こうかと思いつつ、 まずは、最近の自宅開発環境でも。 わたしは、長年 ThinkPad を使ってます。230Cs から何代目だろうか、現在は X300 を使ってます。このマシンは SSD を標準搭載しており、わたしには十分快適です。メモリは満タンの4GB を搭載。 それで、このブログの主題の Linux 環境ですが、Windows Vista 64bit版 および 32bit版 XP (マルチブート)の上に VMware Workstation 6 を動かし、その上で、主に Red Hat 系のディストリビューションを使ってます。コアな Linux 使いの方からすれば、"なんじゃそりゃ"ということでしょうけども、長年 Windows の UI に慣れてますし、ATOK も手放せません。メイリオフォントも。で、Poderosa から VMware ゲストへ ssh 接続して使うのが、わたし流です。

2009-11-14、開設しました。

Linux に関する雑多なメモを書くために開設しました。
人気ブログランキングへ にほんブログ村 IT技術ブログへ