【问题标题】:What is wrong with my find exclude path command?我的查找排除路径命令有什么问题?
【发布时间】:2021-01-09 14:38:10
【问题描述】:

我的文件夹

app
data
node_modules
package.json
package-lock.json
server

我想排除 node_modules

find . -path node_modules -prune -o -type f -name "package.json"

和所有其他路径中的 serach 名称。 但我得到了

./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

等等

为什么?

【问题讨论】:

    标签: linux shell find


    【解决方案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".
    

    如果你要引用一个论点,你不妨引用它们。

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 2013-11-18
      • 1970-01-01
      • 2012-09-21
      • 2014-11-27
      • 1970-01-01
      • 2011-10-24
      • 2014-03-08
      • 1970-01-01
      相关资源
      最近更新 更多