从find中排除子目录

Kil*_*ian 5 macos shell terminal find

java -jar ~/Downloads/simian-2.3.35/bin/simian-2.3.35.jar files $(find ~/App/Classes/ -type f -name "*.m"  -not -path  "Lib/excludethisdir/*")
Run Code Online (Sandbox Code Playgroud)

我正在尝试运行simian并将文件参数传递给它,但排除目录只是不起作用.Lib目录包含在Classes中

任何人都可以指出它为什么不起作用(命令运行,但不排除)

anu*_*ava 10

你嵌套的find命令应该是:

find ~/App/Classes/ -type f -name "*.m"  -not -path "./Lib/excludethisdir/*"
Run Code Online (Sandbox Code Playgroud)

./在排除路径之前添加.

甚至更好:

find ~/App/Classes/ -path "./Lib/excludethisdir/*" -prune -o -type f -name "*.m" -print
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是`-prune` 更快,例如`find ~/App/Classes/ -path "./Lib/excludethisdir" -prune -o -type f -name "*.m" -print` 比每次都检查一下。 (2认同)