来自https://unix.stackexchange.com/a/81379/674
-path不(重新)定义起始路径。它是指当前检查对象的起始路径和相对路径的组合。
“起始路径”是否意味着path? find:的参数
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
Run Code Online (Sandbox Code Playgroud)“当前检查对象的起始路径和相对路径的组合”是什么意思?
例如,您可以通过此查找子目录中的所有文件,
src无论在哪个级别。
“查找子目录中的所有文件,src无论在哪个级别”是如何完成的?
“不要特别对待 / 或 .”意味着
*可以匹配两个文件名(包括扩展名)和子目录:[...]/file*将匹配/file.txt和/files/foo.bar
“不特别对待/或.”没有提到*,那么“不特别对待/或.”是否仅适用于*?
是的,“开始路径”表示出现在命令开头附近find、选项之后但表达式之前的目录名称之一。\xc2\xa0\n我将您链接到的问题解释为建议 OP\ n对之间的区别感到困惑
find /etc ...\nRun Code Online (Sandbox Code Playgroud)\n和
\nfind -path /etc ...\nRun Code Online (Sandbox Code Playgroud)\n\n\n“它指的是当前检查对象的起始路径\n和相对路径的组合。”
\n
我猜这个答案的作者正在想象\n你有一个名为 的目录tools/crowbar,\n其中包含文件drink、food、foolishness和wisdom。\xc2\xa0\nIf\xc2\xa0you\xc2\xa0say
find tools/crowbar -path "*bar/foo*"\nRun Code Online (Sandbox Code Playgroud)\n它会找到\nand ,但不会找到其他两个。tools/crowbar/foodtools/crowbar/foolishness
我同意lcd047。\xc2\xa0\n换句话说,如果你有一个像这样的目录结构
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80cat\n\xe2\x94\x82\xe2\x94\x9c\xe2\x94\x80\xe2\ x94\x80\xe2\x94\x80dog\n\xe2\x94\x82\xe2\x94\x82\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80kennel\n\ xe2\x94\x82\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80tac\n\xe2\x94\x82\xe2\x94\x94\xe2\x94\x80\ xe2\x94\x80\xe2\x94\x80src\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80dest\n\xe2\x94\x9c\xe2\x94\ x80\xe2\x94\x80\xe2\x94\x80原始\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80配方\n\xe2\ x94\x82\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80src\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\ x94\x80src\n
然后
\nfind . -path "*/src/*"\nRun Code Online (Sandbox Code Playgroud)\nsrc将在所有三个文件夹\n(及其所有子目录)\n中查找内容,而不报告cat、cat/dog、cat/dog/kennel、\n cat/tac、dest、original或中的内容original/recipe。
它有助于阅读整个段落,\n而不仅仅是挑选句子片段\n并期望它们单独有意义。\xc2\xa0\nfind (1)-path中测试的讨论\n说,
\n\n\n
-path pattern文件名与 shell 模式模式匹配。\xc2\xa0\n元字符不会特殊对待 \xe2\x80\x98
/\xe2\x80\x99\nor \xe2\x80\x98.\xe2\x80\x99;因此,例如\n
寻找 。-路径“./sr*sc”\n\n
./src/misc将打印名为 \xe2\x80\x98 \xe2\x80\x99\n(如果存在)的目录的条目。\xc2\xa0 ...
好的,当您看到“文件名”、“shell 模式”和“元字符”都在同一行时,\n您\xe2\x80\x99 会想到 shell\xe2\x80\x99s 模式匹配 /\ npathname 扩展,具有特殊模式字符\n *、?和[... ]。\xc2\xa0\n(“元字符”基本上是“特殊字符”的 10 美元单词。)\xc2\xa0\n然后它会显示你给个例子,*里面有 a!\xc2\xa0\n所以你应该能够弄清楚它\xe2\x80\x99s 在说什么。
那么,它在说什么?\xc2\xa0\n看一下示例:sr*scmatches src/misc。\n这与 shell 中的路径名扩展不同,\n您通常需要使用\n类似于match 的内容。\xc2\xa0\ n并且,不,这不适用于\xe2\x80\x99t 仅适用于;\n和\n以相同的方式工作。sr*/*scsrc/misc*-path "sr????sc"-path\xc2\xa0"sr[cim/][cim/][cim/][cim/]sc"
他们不\xe2\x80\x99懒得提及的是-path "*sr*sc"\n不仅会匹配src/misc而且还会.src/misc匹配src/.misc;\n尽管通常*sr*/*sc不会\xe2\x80\x99t匹配那些(在shell中)\n因为,在shell\xe2 \x80\x99s 路径名扩展,\n*通常与 \xe2\x80\x99 不匹配以 \xc2\xa0 开头的名称.。
| 归档时间: |
|
| 查看次数: |
1319 次 |
| 最近记录: |