我知道这\是一个转义字符,但是当我\在 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-execfind-exec{}+find(1)