回声:"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 *\/*
*/* 

做这项工作。

有人能解释为什么会发生这种情况吗?

实际上,您在这里试图取消的不是字符的特殊行为,而是两个*字符的特定行为!

我,我会用

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 *\/*
*/*

基本上是正在转义下一个,而*/*只是像*something或任何其他字符串abc 一样被打印出来

相关内容

最新更新