fre*_*ull 23 unix bash rm find
我有一堆以"-e"结尾的文件要删除.
$ find . -name "*-e" exec rm {} \;
find: exec: unknown primary or operator
Run Code Online (Sandbox Code Playgroud)
正则表达式是否以某种方式扩展,将一切都搞砸了?
anu*_*ava 35
它应该是:
find . -name "*-e" -exec rm '{}' \;
Run Code Online (Sandbox Code Playgroud)
或更好:
find . -name "*-e" -exec rm '{}' +
Run Code Online (Sandbox Code Playgroud)
按照man find:
-exec utility [argument ...] {} +
Same as -exec, except that ``{}'' is replaced with as many pathnames as possible for
each invocation of utility. This behaviour is similar to that of xargs(1).
Run Code Online (Sandbox Code Playgroud)
对@anubhava 的回答+1。然而,在它起作用之前我必须非常小心:
-exec <your-command> {} \;echo先让它发挥作用。find . -name "*.sh" -exec echo {} \;
./081.documentation/000.sticky.list_url_info_markdown/worklocal.sh
./081.documentation/001.fixed.p2.collab_diagrams/common.sh
./081.documentation/001.fixed.p2.collab_diagrams/worklocal.sh
Run Code Online (Sandbox Code Playgroud)
一旦它起作用,你就可以通过额外的查找选项获得所有的乐趣,如下所示
find . -name "*.sh" -maxdepth 3 -exec echo {} \;
-exec, 而不是--exec或exec请记住,find 的选项都需要 1 个破折号。 -exec没有什么不同。
find . -name "*.sh" --exec echo {} \;
?find: --exec: unknown primary or operator
find . -name "*.sh" exec echo {} \;
?find: exec: unknown primary or operator
请注意find:之后的内容如何反映您输入的内容?这里 find 不知道发生了什么,所以你会收到一条通用的“我不知道”消息。
-exec终止 \;- 这个空间就很关键find . -name "*.sh" -exec echo {}\;
?......................你想在错误消息中find: -exec: no terminating ";" or "+"
看到。-exec那部分好吗?find 知道它正在查看什么,因此它具有-exec相关消息。
echo为您的实际有效负载:find . -name "*.sh" -exec reformat.py --myfancy-option-to-reformat {} \;
在某些情况下,如果您的路径中有空格,那么如果您不确定是否要加引号,则可能会这样。但即使使用空格和使用与 echo 不同的命令(cat、ls),我也无法触发任何错误。
find . -name "*.sh" -exec echo {} \;
./bar zoom.sh
./foo.sh
./worklocal.sh
Run Code Online (Sandbox Code Playgroud)
find . -name "*.sh" -exec echo '{}' \;
./bar zoom.sh
./foo.sh
./worklocal.sh
Run Code Online (Sandbox Code Playgroud)
我并不是说引号没有用,我是说它们不会导致未知的primary 或operator。
+删除调用之间的换行符结尾:不要忘记 + 之前的空格。
find . -name "*.sh" -exec echo {} +
./bar zoom.sh ./foo.sh ./worklocal.sh
Run Code Online (Sandbox Code Playgroud)
是的,我梦想有一个更加用户友好的发现。但是 macos 的 Spotlight 相关的mdfind 在选项方面更加不友好
| 归档时间: |
|
| 查看次数: |
23594 次 |
| 最近记录: |