shell脚本,检测android的编译输出的system和vendor目录下的不超过12小时的改动。
写过好几次了,每次用到因为没有备份不得不重新写,上传备份。
用法:bash find_change.sh out/target/product/xxx/system out/target/product/xxx/vendor
#!/bin/bash
# stat -c %Y Android.bp
# 1728294786 # s
# date +%s
# 1728563036
nowtimes=`date +%s`
((FIXEDINTERVAL = 3600 * 12))
echo "now is $nowtimes s"
function traverse_directory() {
local dir=$1
for file in "$dir"/*; do
if [ -d "$file" ]; then
traverse_directory "$file" # 递归遍历子目录
elif [ -f "$file" ]; then
# echo "$file" # 处理文件
modifytimes=`stat -c %Y $file`
# deltas=$(($modifytimes - $nowtimes))
# deltas=$(expr $modifytimes - $nowtimes)
((deltas = nowtimes - modifytimes))
if [ $FIXEDINTERVAL -gt $deltas ]; then
# echo "$file $deltas"
ls -al $file
fi
break
fi
done
}
if [ -n "$1" ]; then
target_dir=$1 # 指定目标目录
traverse_directory "$target_dir" # 调用函数进行遍历
else
echo "参数不存在"
fi
if [ -n "$2" ]; then
target_dir=$2 # 指定目标目录
traverse_directory "$target_dir" # 调用函数进行遍历
fi