查找文件中的匹配字符:grep
grep pci_stm_probe *.c //在所有.c中,查找匹配pci_stm_probe字符的代码行
grep -n pci_stm_probe * // 查找当前目录所有文件(不包含子目录),-n表示打印行数
grep -n pci_stm_probe arch/sh/drivers/pci/* //查找 arch/sh/drivers/pci/目录下的所有文件。
使用grep搜索文件内容——快捷、方便
(1) 在当前目录下的所有文件的文件内容中查找哪个文件的内容中有findcontents(大小写不敏感,列出findcontents所在文件的所在行)——适合于当前目录下的文件及目录数目比较少,如果查找后列出内容过多,将会失去查找意义。
grep -rin findcontents *
grep -rin findcontents *
(2) 如果查找后列出内容过多,就需要用如下命令(只列出findcontents在所在文件的出现次数):
grep -ric findcontents * | grep -v :0
grep -ric findcontents * | grep -v :0
(3) 如果根本不知道文件所在目录,就需要在根目录下进行查找(查找整个硬盘空间),但是由于根目录下某些文件(bin、sbin、boot、dev、initrd、lib)没有查找价值,因而要将其排除在查找范围之外
# cd /
grep -rin findcontents `ls | grep -vE 'bin|boot|dev|initrd|lib'`
# cd /
grep -rin findcontents `ls | grep -vE 'bin|boot|dev|initrd|lib'`
------------------------------------------
-i, --ignore-case
-n, --line-number
-c, --count
-r, --recursive
-v, --invert-match
-E, --extended-regexp
-e PATTERN, --regexp=PATTERN
Use PATTERN as the pattern; useful to protect patterns beginning with -.
注:有c的时候n将失效
-n, --line-number
-c, --count
-r, --recursive
-v, --invert-match
-E, --extended-regexp
-e PATTERN, --regexp=PATTERN
Use PATTERN as the pattern; useful to protect patterns beginning with -.
注:有c的时候n将失效
查找目录中的文件:find
[root@localhost stapp]# find . -name 'make*'
// "." 表示查找当前目录及子目录中的所有文件,可以用别的目录替换.
// -name 表示 文件名称
// ‘make*’ 单引号里为要查找的文件名
// * 表示模糊文件查找。
// "." 表示查找当前目录及子目录中的所有文件,可以用别的目录替换.
// -name 表示 文件名称
// ‘make*’ 单引号里为要查找的文件名
// * 表示模糊文件查找。
find 又学了一招:
find . -name core -print
[root@localhost stapp]# which tar //显示工具或命令的完整路径
/bin/tar
/bin/tar
[root@localhost stapp]# whereis tar //搜索与工具相关的所有文件。
tar: /bin/tar /usr/include/tar.h /usr/share/man/man1/tar.1.gz
tar: /bin/tar /usr/include/tar.h /usr/share/man/man1/tar.1.gz