「.log」だけでなく、すべての文字で終わる必要があるログファイル名を探します。

「.log」だけでなく、すべての文字で終わる必要があるログファイル名を探します。

5日より古いすべてのログファイルを見つける必要があり、ファイル名は.logと任意の文字(first.log20210701、first.logではないなど)で終わる必要があります。このコマンドを試しましたが、「.log」も表示されます。

find . -type f -name '*.log*' -mtime +5 

私を助けてくれますか?

答え1

次のようなもの(.+「1つ以上の文字」を意味):

find . -regex ".*\.log.+" -mtime +5

またはPOSIXly(?1つの文字が必要なので、?*「1つ以上の文字」を意味します):

find . -name "*.log?*" -mtime +5

答え2

find . -type f -name '*.log*' ! -name '*.log' -mtime +5 

で終わるファイル名を許可しないのがまさに.logその! -name '*.log'ことです。

これで見つけることができますが、first.log20210701ORではありませんfirst.logfirst.log20210701.logfirst.login.log

関連情報