回声:"Why need to use \ instead of \ to cancel the / character?"
echo: "Why need to use \\ instead of \ to cancel the / character?"
~/Desktop $ echo */*
unix/junk unix/save unix/xyxxy
我想取消斜杠,这样 shell 就不再打印目录的文件了。我发现
~/Desktop $ echo *\/*
unix/junk unix/save unix/xyxxy
无效
,而
~/Desktop $ echo *\/*
*\/*
完成任务。
有人可以解释为什么会这样吗?
之前的回答我没说清楚。最后一个命令发生了什么
~/Desktop $ echo *\/*
*\/*
基本上是 \
转义下一个 \
而 *\/*
只是像任何其他普通字符串一样被打印出来,就像 *something
或任何其他字符串 abc
实际上,您在这里要取消的不是 \
字符的特殊行为,而是两个 *
字符的特殊行为!
我,我会用
echo '*/*'
或
echo "*/*"
或者,如果您想使用 \
,最好的方法是
echo \*/\*
实际上,由于几乎肯定没有名为“*”的文件或目录,您通常只需
echo \*/*
或
echo */\*
你写的时候
echo *\/*
您要求查看子目录名称以 \
结尾的任何子目录中所有文件的所有名称。可能没有任何这些,但如果你想看看发生了什么,请尝试调用
mkdir x\
touch x\/y
touch x\/z
然后做你的
echo *\/*
再次。你应该看到 x\/y x\/z
!
单个反斜杠用于特殊序列,例如 \n
。所以要插入一个真正的 - 转义 - 反斜杠,你必须写 \
.
如果您只想打印桌面上的文件夹,请使用 echo */
echo *\/*
将打印任何包含以 \
结尾的文件夹的内容
而 echo *\/*
将打印任何文件夹中的任何内容,因为反斜杠 (\
) 没有转义
~/Desktop $ echo */*
unix/junk unix/save unix/xyxxy
我想取消斜杠,这样 shell 就不再打印目录的文件了。我发现
~/Desktop $ echo *\/*
unix/junk unix/save unix/xyxxy
无效 ,而
~/Desktop $ echo *\/*
*\/*
完成任务。
有人可以解释为什么会这样吗?
之前的回答我没说清楚。最后一个命令发生了什么
~/Desktop $ echo *\/*
*\/*
基本上是 \
转义下一个 \
而 *\/*
只是像任何其他普通字符串一样被打印出来,就像 *something
或任何其他字符串 abc
实际上,您在这里要取消的不是 \
字符的特殊行为,而是两个 *
字符的特殊行为!
我,我会用
echo '*/*'
或
echo "*/*"
或者,如果您想使用 \
,最好的方法是
echo \*/\*
实际上,由于几乎肯定没有名为“*”的文件或目录,您通常只需
echo \*/*
或
echo */\*
你写的时候
echo *\/*
您要求查看子目录名称以 \
结尾的任何子目录中所有文件的所有名称。可能没有任何这些,但如果你想看看发生了什么,请尝试调用
mkdir x\
touch x\/y
touch x\/z
然后做你的
echo *\/*
再次。你应该看到 x\/y x\/z
!
单个反斜杠用于特殊序列,例如 \n
。所以要插入一个真正的 - 转义 - 反斜杠,你必须写 \
.
如果您只想打印桌面上的文件夹,请使用 echo */
echo *\/*
将打印任何包含以 \
结尾的文件夹的内容
而 echo *\/*
将打印任何文件夹中的任何内容,因为反斜杠 (\
) 没有转义