我的文件夹
app
data
node_modules
package.json
package-lock.json
server
我想排除 node_modules
find . -path node_modules -prune -o -type f -name "package.json"
和所有其他路径中的搜索名称。 但是我得到了
./node_modules/postcss-pseudo-class-any-link/package.json
./node_modules/postcss-pseudo-class-any-link/node_modules/cssesc/package.json
./node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser/package.json
./node_modules/normalize-range/package.json
./node_modules/run-queue/package.json
./node_modules/regenerator-runtime/package.json
等等
为什么?
答案 0 :(得分:1)
使用 name
而不是 path
。此外,您应该显式地使用 -print 以避免隐式打印正在修剪的目录。
find . -name node_modules -prune -o -type f -name package.json -print
请注意,您对引号的使用很奇怪。为了保持一致性,在我看来你应该这样写:
find "." "-name" "node_modules" "-prune" "-o" "-type" "f" "-name" "package.json" "-print"
甚至
"find" "." "-name" "node_modules" "-prune" "-o" "-type" "f" "-name" "package.json" "-print".
如果你要引用一个论点,你最好把它们全部引用。