if와 find를 함께 사용하기

if와 find를 함께 사용하기

디렉터리에서 5일보다 오래된 .trc 파일을 찾으면 "성공"을 표시하는 스크립트를 작성하려고 합니다. 그러나 내 디렉터리가 존재하더라도 full_path_trace': No such file or 디렉터리 오류가 발생합니다. 내가 뭘 잘못했는지 모르겠습니다.

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를 반환합니다.

-quitfind첫 번째 일치 항목이 종료되고 추가 일치 항목 검색이 중지됩니다 . 그렇지 않은 경우 -quitgrep번째 줄을 읽은 후 종료되며, find다른 파일이 많으면 결국 조기 종료됩니다.

관련 정보