栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux,检测文件是否有更新

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux,检测文件是否有更新

#!/bin/bash
old_time=$(cat change_time.txt)
cd RK/project
chmod 777 app/rkipc/Makefile
new_time=$(stat -c "%y" app/rkipc/Makefile)
if [ "echo $old_time" = "echo $new_time" ]
then
        echo "#########not change#############"
else
        ./build.sh | tee /home/linhaot/sharing/rk_test.txt
fi
cd ..
cd ..
stat -c "%y" RK/project/app/rkipc/Makefile > change_time.txt
grep -n "(RK_APP_TYPE)=" rk_test.txt

原来目的是更改了RK/project/app/rkipc/Makefile的文件增加回显echo来查看一些变量值。但是由于一直需要在各个文件路径下返回,比较麻烦就写了这个程序。

这里的思路是用stat查询Makefile的日期然后,存到change_time.txt中,每次运行的时候都会调取现在的日期然后和之前的对比。

注意点 1.stat的用法
stat -c "%y" RK/project/app/rkipc/Makefile > change_time.txt

这是将Makefile文件的更改日期重定向到change_time.txt,不了解重定向的可以先看下面文章:

Linux学习日志3:shell_重定向_管道_如来fo的博客-CSDN博客一、重定向在看sh文件的时候,会发现明明echo或这报错了却没有显示出来,这是因为它们将输出存入别的地方了。Linux shell中,执行程序时,它使用三个标准I/O流,每个流都由一个数字文件描述符表示:0 - stdin,标准输入流。1 - stdout,标准输出流。2 - stderr,标准错误流。基本上你可以:1>.重定向stdout到一个文件ls-l#显示当前目录下所有文件的具体消息,并打印到屏幕上ls-l >/home/ls-l.txt#​将lhttps://blog.csdn.net/weixin_46479559/article/details/124166808?spm=1001.2014.3001.5501stat具体用法:

linux中的stat介绍_Xlucas的博客-CSDN博客_linux stat核心 1、什么是stat命令 2、stat的格式 3、stat的基本操作 4、stat的案例1、什么是stat命令 stat指令:文件/文件系统的详细信息显示。 stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下: -f  不显示文件本身的信息,显示文件所在文件系统的信息 -Z 打印SElinux安全上下文信息 -L  显示符号链接 -chttps://blog.csdn.net/paicMis/article/details/60479639?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165242780916782184678149%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165242780916782184678149&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-60479639-null-null.142^v9^control,157^v4^control&utm_term=linux+stat+&spm=1018.2226.3001.4187

2.将命令的输出赋值给变量
old_time=$(cat change_time.txt)
new_time=$(stat -c "%y" app/rkipc/Makefile)
3.用if比较两个时间是否相同
if [ "echo $old_time" = "echo $new_time" ]

 注意:

①: “[” "]" "="左右都要有空格。

        不会用if的可以参考这篇:Linux学习日志2:shell脚本_如来fo的博客-CSDN博客

②:"echo $old_time"将变量用字符串的形式表示出来

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/880463.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号