30日以上経過したログファイルを探す

30日以上経過したログファイルを探す

特定のフォルダで30日以上経過したファイルを検索するスクリプトを作成しています。要件に応じて、拡張子を持つファイルのみを削除する必要があります。。丸太または。出るサブディレクトリをスキップします。

次のコマンドは、30日前に変更されたすべての.log *ファイルを返します。ただし、最新のファイルを含むすべての.outファイルを返します。以下のコードに問題がありますか?

    find -maxdepth 1 -mtime +30 -type f -name "*.log*" -o -name "*.out*"

上記の文で何が問題なのか教えていただけますか?

ベストアンサー1

努力する:

find -maxdepth 1 -mtime +30 -type f \( -name "*.log*" -o -name "*.out*" \)

問題は、find論理ORが論理ORよりも密接に結合されることです。括弧はこれを相殺します。

括弧はありません。find一致するファイルを探しています。誰でも(ㅏ)-mtime +30 -type f -name "*.log*" または(2)-name "*.out*"

括弧を使用してfind(a)に一致するファイルを検索する-mtime +30 -type f そして(b)一致-name "*.log*"または-name "*.out*"

おすすめ記事