使用“查找”时如何排除目录?

新手上路,请多包涵

使用 find 搜索 *.js 文件时如何排除特定目录?

 find . -name '*.js'

原文由 helion3 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 586
2 个回答

使用 -prune 主要。例如,如果要排除 ./misc

 find . -path ./misc -prune -o -name '*.txt' -print

排除多个目录,或在括号之间。

 find . -type d \( -path ./dir1 -o -path ./dir2 -o -path ./dir3 \) -prune -o -name '*.txt' -print

而且,要在任何级别排除具有特定名称的目录,请使用 -name 主目录而不是 -path

 find . -type d -name node_modules -prune -o -name '*.json' -print

原文由 f10bit 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果 -prune 对您不起作用,这将:

 find -name "*.js" -not -path "./directory/*"

警告: 需要遍历所有不需要的目录。

原文由 GetFree 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题