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最初の一致が終了し、追加の一致検索が停止します。そうでない場合は、-quit最初grepの行を読んだ後に終了し、find他のファイルが多い場合は最終的に早く終了します。

関連情報