Shell脚本 - 搜索所有文件?

时间:2011-11-21 01:24:04

标签: file

我正在尝试编写一个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“”以便我可以看到退出了。

2 个答案:

答案 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