最近老被同学问到关于通配符操作的问题,本来觉得是一个很简单的问题,结果它和其它命令一结合,就很难给出合理的理解 。进行了很多实验,总是难以有个满意的答案 。于是决定要好好研究一番 ,终于在多次的测试和验证过程中,彻底地了解这个符号的含义 。 1.命令回显结果以下为一些命令的回显结果,根据这些结果,你都能解释出每个命令的含义 ? 2.进行验证以上只是部分进行验证命令的输出结果,但不管是哪些,很多的结果都让人无法理解 。尤其是在和不同的命令进行结合使用后,更会让人产生一些误解 。 那么,在进行命令之前,我们再来回顾下这个通配符*的意思 。以下是百度百科或其它网站查看对通配符解释 。
大多数的解释是* 代表的是0到任意个字符 。 那么按照这个解释,我们去对上面的命令进行验证 ,看看能否解释通 。 通过这个命令,基本理解为它是查找文件中的内容了 ,因为从结果来看,这俩个内容是从c.txt中查找到的。 以上最后的这个截图非常重要,通过它猜测出*很可能是代表的是所有文件 。 接下来,我们把* 当做所有的文件名再次进行验证 。 3.总结所以,通过以上的验证可以得出结果 ,*代表当前路径下所有的文件名(字符) ,也可以理解为任意的字符 。 也就是说*代表任意个字符是没有问题的 。 但是需要注意的是,它和其它命令结合后,这些文件名在当前语境就可能变为不同的意思了 ,比如grep 后的第一个文件名(字符)它是被当做过滤字符被使用的,但是后面的都当成了文件名被使用了 。 |
|