如何获取与bash中的模式不匹配的文件列表?

Tam*_*lei 3 linux bash regex find

我有一个带有小丑字符模式的文件:

。/包括/*

./src/*

等等。

我想从当前目录递归地获取与这些模式不匹配的文件列表。

Bri*_*erg 6

find . -type f \! \( -path '*/include/*' -o -path '*/src/*' \)
Run Code Online (Sandbox Code Playgroud)

分解:

  • \! 正在否定该组
  • \( ... \) 是如何做条件组的 find
  • -o OR 条件
  • 其他一切都应该是不言自明的。

如果您有足够新版本的find,您可以通过以下方式增强它:

find . -type f -regextype posix-egrep -regex \! -path '.*/(include|src)/.*'
Run Code Online (Sandbox Code Playgroud)