查找命令中的反斜杠

时间:2019-04-05 07:35:28

标签: linux find ksh backslash

我有一个ksh文件,其中有以下几行代码

   find . \
    \( \
        -name \*.tar -o \
        -name \*.gz -o \
        -name log.\* -o \
        -name out.\*  \
\) \

我有兴趣知道这些反斜杠的用途。 是为了逃避某些东西吗?

2 个答案:

答案 0 :(得分:1)

一行重写:

find . \( -name "*.tar" -o -name "*.gz" -o -name "log.*" -o -name "out.*" \)

顺便说一句。在您的示例中,last -o(必须带有选项)和反斜杠是错误的

答案 1 :(得分:1)

反斜杠在这里有两个用途:

  • 在行的末尾:让shell忽略换行符,即命令在下一行继续。没有它,shell会认为新命令将从下一行开始。

  • 在一行中:转义下一个字符,以便外壳程序不解析它。这些字符通常对外壳具有特殊含义。反斜杠消除了此含义,以便将字符按原样传递给find。 在此处详细了解此内容:Which characters need to be escaped when using Bash?。它与Bash有关,但KSH类似。