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

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

我有一个包含小丑角色图案的文件:

。/包括/*

./src/*

ETC。

我想从当前目录中递归获取文件列表不符合这些模式

答案1

find . -type f \! \( -path '*/include/*' -o -path '*/src/*' \)

分解:

  • \!否定了该群体
  • \( ... \)如何执行条件组find
  • -oOR 条件
  • 其余一切都应该是不言自明的。

如果您有足够新的版本find,您可以使用以下方法增强它:

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

答案2

第一种方法,但不使用文件列表,其他人可以自由改进:

find . -type f -print | grep -v '.\/src\/*'

相关内容