wes*_*esk 56 linux command find backslash
我已经开始在linux终端中组合不同的命令.我想知道为什么命令需要反斜杠和分号,例如:
find ./ -name 'blabla' -exec cp {} ./test \;
Run Code Online (Sandbox Code Playgroud)
当一个简单的cp命令是简单的:
cp randomfile ./test
Run Code Online (Sandbox Code Playgroud)
没有\;
它们是清楚地表明命令的结束,还是仅仅是文档中的要求?基本原则是什么?
谢谢!
Ema*_*ini 49
来自"找人":
查找的所有后续参数都被视为命令的参数,直到由';'组成的参数为止 遇到了.
发现需要知道exec的参数何时终止.使用;终止shell命令是很自然的.因为shell也使用这个字符.出于同样的原因,当通过shell插入时,必须转义这样的字符.
ken*_*orb 44
分号之前反斜杠用于,因为;
是列表操作符(或之一&&
,||
),用于分离外壳命令.例如:
command1; command2
Run Code Online (Sandbox Code Playgroud)
该find
实用程序正在使用;
或+
终止由其调用的shell命令-exec
.
因此,为了避免解释中的特殊shell字符,需要使用反斜杠对其进行转义,以删除下一个字符读取和行继续的任何特殊含义.
因此,find
命令允许以下示例语法:
find . -exec echo {} \;
find . -exec echo {} ';'
find . -exec echo {} ";"
find . -exec echo {} \+
find . -exec echo {} +
Run Code Online (Sandbox Code Playgroud)
也可以看看: