我正在尝试编写一个shell脚本来搜索文件名(作为参数给出),如果文件被修改为小于或等于10分钟前,则退出0,如果修改超过10分钟之前退出1,如果文件不存在则退出2.
这是我的代码:
if find $1
then
if find $1 -mmin -11
then
echo "Exit 0"
else
echo "Exit 1"
fi
else
echo "Exit 2"
fi
如何搜索系统中的所有文件?
此外,如果该文件存在,则检查它是否在过去10分钟内被修改,如果是,则退出1.如果该文件不存在则退出2.我已使用echo“”以便我可以看到退出了。
答案 0 :(得分:1)
if [[ -n $1 ]]; then
find / -name $1 -mmtime -10 2>/dev/null
if [[ $? == 0 ]]; then
exit 0
else
exit 1
fi
else
...
答案 1 :(得分:0)
如果在文件系统上找到两个具有该名称的文件,您想要做什么? (目前,我认为这不是一个问题,只能与找到的第一个文件一起使用。)你的问题与自己相矛盾:在序言中,如果在最后10分钟内修改了你想要退出0 ,但后来你说最近的修改应该触发退出1.以下解决方案返回0的文件在最近10分钟内没有被修改。这要求gnu扩展到日期,它给出%s格式说明符。
#!/bin/sh fullpath=$( find / -name ${1?No file specified} | sed 1q | grep . ) || exit 2 test $( expr $( date +%s ) - $( stat -c %Y $fullpath )) -gt 600