来自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 ...\n
Run Code Online (Sandbox Code Playgroud)\n和
\nfind -path /etc ...\n
Run 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*"\n
Run Code Online (Sandbox Code Playgroud)\n它会找到\nand ,但不会找到其他两个。tools/crowbar/food
tools/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/*"\n
Run 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*sc
matches src/misc
。\n这与 shell 中的路径名扩展不同,\n您通常需要使用\n类似于match 的内容。\xc2\xa0\ n并且,不,这不适用于\xe2\x80\x99t 仅适用于;\n和\n以相同的方式工作。sr*/*sc
src/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 次 |
最近记录: |