bash脚本写的一个东西,可以替代find . -type f -atime +N -exec ls {} \;
1#!/bin/bash
2#As the danger of rm i # it
3#由于win系统与linux对回车的不同定义(郁闷了我很长时间) 特把最后一题源程序作为附件
4#不让用原本非常简单的find 导致我在这道题上话花费拉很长时间 这个程序要求有tree这个命令unbuntu默认没有安装……)
5#N是要求的天数 为了安全没有在shell参数中实现N的传递
6#相关列表存放在 ~/list中
7#鉴于一般不会出现带空格的文件名 没有考虑带空格的文件的删除 如果需要可以在 $filename两边加 " 实现吧
8#AuXteN
9today=$(date +%Y-%m-%d)
10N=3
11delist=~/list
12daysec=86400
13#ls -lu --time=atime --full-time|grep -e '^[^d]'| awk 'NF > 3 {print $9}'>$delist
14tree -if|grep '^\./' > $delist
15for filename in $(cat $delist|awk '{print $1}')
16do
17echo "$filename"
18 last_access_time=$(stat $filename | tail -3 | grep Access | awk '{print $2}')
19 echo "$last_access_time"
20 today_s=$(date --date="$today" +%s)
21 echo "$today_s"
22 old_s=$(date --date="$last_access_time" +%s)
23 echo "$old_s"
24 ((interval_total_s=$today_s-$old_s))
25 echo "$interval_total_s".
26 interval_day=$(expr $interval_total_s / $daysec)
27 echo "$interval_day"
28 if [ $interval_day -gt $N ]
29 then
30 echo "delete $filename"|tee -a $delist
31 #rm -I $filename
32 fi
33done
34
2#As the danger of rm i # it
3#由于win系统与linux对回车的不同定义(郁闷了我很长时间) 特把最后一题源程序作为附件
4#不让用原本非常简单的find 导致我在这道题上话花费拉很长时间 这个程序要求有tree这个命令unbuntu默认没有安装……)
5#N是要求的天数 为了安全没有在shell参数中实现N的传递
6#相关列表存放在 ~/list中
7#鉴于一般不会出现带空格的文件名 没有考虑带空格的文件的删除 如果需要可以在 $filename两边加 " 实现吧
8#AuXteN
9today=$(date +%Y-%m-%d)
10N=3
11delist=~/list
12daysec=86400
13#ls -lu --time=atime --full-time|grep -e '^[^d]'| awk 'NF > 3 {print $9}'>$delist
14tree -if|grep '^\./' > $delist
15for filename in $(cat $delist|awk '{print $1}')
16do
17echo "$filename"
18 last_access_time=$(stat $filename | tail -3 | grep Access | awk '{print $2}')
19 echo "$last_access_time"
20 today_s=$(date --date="$today" +%s)
21 echo "$today_s"
22 old_s=$(date --date="$last_access_time" +%s)
23 echo "$old_s"
24 ((interval_total_s=$today_s-$old_s))
25 echo "$interval_total_s".
26 interval_day=$(expr $interval_total_s / $daysec)
27 echo "$interval_day"
28 if [ $interval_day -gt $N ]
29 then
30 echo "delete $filename"|tee -a $delist
31 #rm -I $filename
32 fi
33done
34