我知道这\
是一个转义字符,但是当我\
在 bash 中编写时,我有这样的东西:
System-Product-Name:~$ \
>
Run Code Online (Sandbox Code Playgroud)
那么 bash 会等待一些指令吗?当我使用
System-Product-Name:~$ \
> ls
Run Code Online (Sandbox Code Playgroud)
这是工作。但是当我使用
System-Product-Name:~$ cd Wideo \
> ls
bash: cd: too many arguments
Run Code Online (Sandbox Code Playgroud)
那么反斜杠就像管道一样工作吗|
?我不这么认为。
当我使用这个命令时:
find . -name "FILENAME" -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
为什么我需要终止它?我认为该命令find
找到了正确的文件,并将exec
它们从找到它们的路径中删除。如果没有这个,我所得到的信息就-exec
没有任何论据,我就无法理解。为什么我不能只使用
find . -name "FILENAME" -exec rm {}
Run Code Online (Sandbox Code Playgroud)
?
我只有有关 man find 中 exec 的信息:
exec 显示与 -exec、-execdir、-ok 和 -okdir 相关的诊断信息
那么为什么我在使用 exec 时需要终止呢?例如当我使用
find . -name "FILENAME"
Run Code Online (Sandbox Code Playgroud)
我不需要终止。
Fré*_*yer 15
您应该区分行\
末尾的 ,这意味着“这不是行的末尾,该行继续下一行”(那么您的cd
命令有 2 个参数,太多了),而\
行内部则阻止下一个字符具有特殊含义。
然后,\;
在您的示例中,意味着给出find
一个文字;
作为参数。如果没有\
,则;
将对 shell 具有特殊含义,并将用作find
命令和下一个命令之间的分隔符。
当您与选项一起;
使用时,需要使用该参数,以便知道with 给出的命令在哪里结束。另一种选择是两个参数和。您应该阅读手册以获取更多信息。find
-exec
find
-exec
{}
+
find(1)