Javascript で機能する正規表現がありますが、Linux の find コマンドでは機能しません。目的は、特定のディレクトリを除外して、過去 90 日間に更新されたファイルのリストを収集することです (たとえば、ディレクトリを含めたいが、を含めたくないとします/data/safe/23/test
) /data/safe/23/skip1
。正規表現は次のとおりです。
^/data/safe/\d{1,4}/(?:(?!skip1|skip2).*)
そして、これがfindコマンドです(私はposix-extendedを使用していることに注意してください。これが問題になる可能性があります):
find /data/safe -regextype posix-extended -regex '^/data/safe/\d{1,4}/(?:(?!skip1|skip2).*)' -mtime -90
最後に、生成されるエラーは次のとおりです。
find: Invalid preceding regular expression
どんな助けでも大歓迎です!