2009年7月9日木曜日

findコマンド更新日時のオプション(mtime等)

findコマンドのオプションで、対象のファイルを更新日時で絞ることが可能ですが、+オプションと−オプションの違いを忘れてしまいましたので、記述しておきます。

・3(+もしくは、−オプションを付与しない場合)の場合は、三日前のみ対象
・+3の場合は、三日前より過去が対象(三日以前が対象)
・−3の場合は、三日前から本日までが対象(三日以内が対象)

以下の手順は、上記を実機で確認した方法です。
#############
# ファイルの作成
#############
for i in 0 1 2 3
do
touch $i.txt
done

#############
# 更新日時の変更
#############
touch -mt 07080000 0.txt
touch -mt 07070000 1.txt
touch -mt 07060000 2.txt
touch -mt 07050000 3.txt

#############
#更新日時の確認
#############
ls -l
-rw-r--r-- 1 xx usrgp 0 7月 8 00:00 0.txt
-rw-r--r-- 1 xx usrgp 0 7月 7 00:00 1.txt
-rw-r--r-- 1 xx usrgp 0 7月 6 00:00 2.txt
-rw-r--r-- 1 xx usrgp 0 7月 5 00:00 3.txt

#############
# 更新日時X日を指定した場合
#############
for i in 0 1 2 3 4
do
echo "============"
 echo "$i日を指定した場合"
 find . -mtime $i
 echo ""
done
============
0日を指定した場合
.
./0.txt

============
1日を指定した場合
./1.txt

============
2日を指定した場合
./2.txt

============
3日を指定した場合
./3.txt

============
4日を指定した場合

#############
# 更新日時+X日を指定した場合
#############
for i in 0 1 2 3 4
do
 echo "============"
 echo "+$i日を指定 した場合"
 find . -mtime +$i
 echo ""
done
============
+0日を指定した場合
./3.txt
./1.txt
./2.txt

============
+1日を指定した場合
./3.txt
./2.txt

============
+2日を指定した場合
./3.txt

============
+3日を指定した場合

============
+4日を指定した場合

#############
# 更新日時−X日を指定した場合
#############
for i in 0 1 2 3 4
do
echo "============"
echo "-$i日を指 定した場合"
find . -mtime -$i
echo ""
done
============
-0日を指定した場合

============
-1日を指定した場合
.
./0.txt

============
-2日を指定した場合
.
./1.txt
./0.txt

============
-3日を指定した場合
.
./1.txt
./0.txt
./2.txt

============
-4日を指定した場合
.
./3.txt
./1.txt
./0.txt
./2.txt

0 件のコメント: