一起使用 if 和 find

一起使用 if 和 find

我正在尝试编写一个脚本,如果它在目录中找到超过 5 天的 .trc 文件,则会回显“成功”。但是,即使我的目录存在,我也收到 full_path_trace': No such file or directory 错误。我不知道我做错了什么。

full_path_trace='/u01/app/oracle/myfolder/trace'
if [[ -n $(find "full_path_trace" -name "*.trc" -mtime +5) ]]
 then
   echo "success!"
else

  echo "fail"
fi

答案1

$您缺少变量前面的a 。在这里,我会这样做:

if find "$full_path_trace" -name '*.trc' -mtime +5 -print -quit |
   grep -q '^'; then
  echo 'Success!'
else
  echo >&2 fail
fi

-quit如果您find不支持,请删除。

grep -q一旦在输入中找到一行就返回 true。

-quit将导致find在第一个匹配项时退出并停止搜索更多匹配项。如果没有-quitgrep将在读取第一行后退出,并且find如果还有很多其他文件,最终会导致提前退出。

相关内容