打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Linux的这个通配符,花了两天时间,终于搞明白了

最近老被同学问到关于通配符操作的问题,本来觉得是一个很简单的问题,结果它和其它命令一结合,就很难给出合理的理解 。进行了很多实验,总是难以有个满意的答案 。于是决定要好好研究一番 ,终于在多次的测试和验证过程中,彻底地了解这个符号的含义 。

1.命令回显结果

以下为一些命令的回显结果,根据这些结果,你都能解释出每个命令的含义 ?

2.进行验证

以上只是部分进行验证命令的输出结果,但不管是哪些,很多的结果都让人无法理解 。尤其是在和不同的命令进行结合使用后,更会让人产生一些误解 。

那么,在进行命令之前,我们再来回顾下这个通配符*的意思 。以下是百度百科或其它网站查看对通配符解释 。

通配符是一种特殊语句,主要有星号()和问号(?),用来模糊搜索文件。当查找文件夹时,可以使用它来代替一个或多个字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。 实际上用“Not?pad”可以对应Notepad\MyNotepad【*可以代表任何字符串;?仅代表单个字符串,但此单字必须存在】;Notep[ao]d可以对应Notepad\Notepod【ao代表a与o里二选一】,其余以此类推。

* 匹配0到任意字符

大多数的解释是* 代表的是0到任意个字符 。

那么按照这个解释,我们去对上面的命令进行验证 ,看看能否解释通 。

通过这个命令,基本理解为它是查找文件中的内容了 ,因为从结果来看,这俩个内容是从c.txt中查找到的。

以上最后的这个截图非常重要,通过它猜测出*很可能是代表的是所有文件 。

接下来,我们把* 当做所有的文件名再次进行验证 。

3.总结

所以,通过以上的验证可以得出结果 ,*代表当前路径下所有的文件名(字符) ,也可以理解为任意的字符 。

也就是说*代表任意个字符是没有问题的 。

但是需要注意的是,它和其它命令结合后,这些文件名在当前语境就可能变为不同的意思了 ,比如grep 后的第一个文件名(字符)它是被当做过滤字符被使用的,但是后面的都当成了文件名被使用了 。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Linux常用命令学习笔记(一)
[批处理命令一日一教学 续](13)字符串查找增强:findstr
FOR的集与通配符上
linux下shell的工作原理
dos2
find 命令
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服