赞
踩
Linux 是很多人走进计算机行业的敲门砖,同时也是面试官最喜欢问的知识点。但 Linux 中的命令较多,且单个命令的参数和格式又眼花缭乱,真正掌握还是有很大难度的。
本场 Chat,就是帮你梳理面试官最常考察的命令,配合操作示例,让你手把手体验,理解更到位。
1. find 命令
1.1 find -regex 与 find -name 的区别
若一个目录中,有如下目录:
susu@ubuntu:~/find_test$ ls
aaa aaa 22 1
susu@ubuntu:~/find_test$
可以使用 -name 进行名字匹配查询:
susu@ubuntu:~/find_test$ find . -name "a*"
./aaa
./aa
susu@ubuntu:~/find_test$
若同样的方式,使用 -regex 查询,则不能得到想要的结果:
susu@ubuntu:~/find_test$ find . -regex "a*"
susu@ubuntu:~/find_test$
出现以上结果的原因在于 -name 只要求匹配当前目录中的文件(夹)名称,而 -regex 则是把 find 输出的完整结果作为匹配对象,所以上面的命令中,默认是以 a 作为开头的字符串匹配,是不符合 -regex 规则,所以没能匹配到想要的结果。
正确用法如下:
susu@ubuntu:~/find_test$ find . -regex ".*a+"
./aaa
./aa
susu@ubuntu:~/find_test$
注意:
命令选项之后的参数,可用双引号包裹起来,也可以不用。
在 -name 语法中,可以使用星号 *,在知道部分文件名的情况下使用。但是正则表达式语法中的其他特殊字符是没有效果的,而且两种方式下的星号含义也不同。比如如下的操作,是找不到文件夹“cccccc”的。
susu@ubuntu:~/find_test$ ls
1 aa cccccc mycprogram.c Program.c
2 aaa mybashprogram.sh MyCProgram.c
susu@ubuntu:~/find_test$ find . -name "c*"
./cccccc
susu@ubuntu:~/find_test$ find . -name "c.*"
susu@ubuntu:~/find_test$
例子:eclipse 工程文件夹下有 4 个 project
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。