find . -name '*log*' -type f -mtime +1 | xargs rm less
Demonstration at the ksh prompt...
1 means 24 hours old
-1 means less than 24 hours old
+0 means more than 24 hours old
+1 means more than 48 hours old
$ for i in 09 10 11 12;do touch -t 200707${i}0000 July_${i};done $ ls -o total 0 -rw-r--r-- 1 Ygor 0 Jul 9 00:00 July_09 -rw-r--r-- 1 Ygor 0 Jul 10 00:00 July_10 -rw-r--r-- 1 Ygor 0 Jul 11 00:00 July_11 -rw-r--r-- 1 Ygor 0 Jul 12 00:00 July_12 $ for j in 1 -1 +0 +1;do echo "[[ ${j} ]]";find . -type f -mtime ${j} -print;done [[ 1 ]] ./July_11 [[ -1 ]] ./July_12 [[ +0 ]] ./July_09 ./July_10 ./July_11 [[ +1 ]] ./July_09 ./July_10
The reason is that "+1" means 2 or more days old, i.e. more than 48 hours old. ui
if you need to be really precise I usually do summink like:
spa
touch -t YYYYMMDDhhmmss 111 find . -older 111 | xargs rm