
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.log20210701
ORではありませんfirst.log
。first.log20210701.log
first.login.log