为什么 find 命令的 -exec 选项需要反斜杠和分号?
- 2024-10-24 08:50:00
- admin 原创
- 60
问题描述:
我已经开始在 Linux 终端中组合不同的命令。我想知道为什么这样的命令需要反斜杠和分号:
find ./ -name 'blabla' -exec cp {} ./test ;
当一个简单的 cp 命令只是:
cp randomfile ./test
没有;
它们是为了清楚地指示命令的结束,还是只是文档中要求的?其基本原理是什么?
解决方案 1:
在分号前使用反斜杠,因为;
是用于分隔 shell 命令的列表运算符之一(或&&
, ||
)。例如:
command1; command2
该find
实用程序正在使用;
或+
终止调用的 shell 命令-exec
。
因此,为了避免解释特殊的 shell 字符,需要使用反斜杠对它们进行转义,以删除对下一个读取的字符和行继续的任何特殊含义。
因此,命令允许使用以下示例语法find
:
find . -exec echo {} ;
find . -exec echo {} ';'
find . -exec echo {} ";"
find . -exec echo {} +
find . -exec echo {} +
参见:
在 find 中,使用分号 (;) 与 exec 中的加号 (+)
简单的 unix 命令,{} 和 \; 是干什么用的
解决方案 2:
来自“man find”:
所有后续要查找的参数都被视为命令的参数,直到遇到由“;”组成的参数。
find 需要知道 exec 的参数何时终止。用 ; 终止 shell 命令是很自然的,因为 shell 也使用这个字符。出于同样的原因,这样的字符在通过 shell 插入时必须进行转义。
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件
热门标签
云禅道AD