grep---文件内容查询
-b 显示字节偏移量
-c 只显示匹配行的数量
-i 比较时不区分大小写
-h 在查找多个文件时,指示grep不要将文件名加入到输入前
-l 显示首次匹配串所在的文件名并用换行符将其隔开。当在某文件中多次出现匹配串时,不重复显示此文件名。
-n 在输出前加上匹配串所在行的行号
-v 只显示不包含匹配串的行
-x 只显示整行严格匹配的行
//在文件st.h中搜索字符串“text file”
# grep 'text file' st.h
//搜索出当前目录下所有文件中含有“data”字符串的行
# grep data *
//在C程序文件中搜索包含有“stdio.h”头文件的所有文件
# grep stdio.h *.c
---------------------------------------------------------------------------------------------------------------------------------
通配符“*”表示一个字符串;“?”只代表一个字符
---------------------------------------------------------------------------------------------------------------------------------
find---文件查找命令
逻辑运算符:
and 与的意思,用“-a”命令,表示查找所给条件中都满足的文件。
or 或的意思,用“-o”命令,表示查找所给条件中有一个满足的文件。
not 非的意思,用“!”命令,表示查找不满足所给条件的文件。
该命令的查找方式主要为以名称和文件属性查找,参数如下:
-name‘字串’:查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[]。
-lname‘字串’:查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符*、?、[]。
-gid n:查找属于id号为n的用户组的所有文件。
-uid n:查找属于id号为n的用户的所有文件。
-group string:查找属于用户组名为所给字串的所有的文件。
-user string:查找属于用户名为所给字串的所有的文件。
-empty:查找大小为0的目录/文件。
-path string:查找路径名匹配所给字串的所有文件,可用通配符*、?、[]。
-perm permission:查找具有指定权限的文件和目录。
-size n[bckw]:查找指定文件大小的文件,n后面的字符表示单位,默认为 b,代表 512字节的块。
该命令也提供了对查找出来的文件进行特定操作的选项:
-exec cmd{}:对符合条件的文件执行所给的Linux命令,而不询问用户是否要执行该命令。{}表示命令的参数即为所找到的文件;命令的末尾必须以“\;”结束。
-ok cmd{}:对符合条件的文件执行所给的 Linux命令,与 exec 不同的是,它会询问用户是否要执行该命令。
-ls:详细列出所找到的所有文件。
-fprintf文件名:将找到的文件名写入指定文件。
-print:在标准输出设备上显示查找出的文件名。
//查找当前目录中所有以main开头的文件,并显示这些文件的内容
# find . -name 'main*' -exec more {} \;
//查询文件名为'tmp或是匹配mina*'的所有文件
# find -name 'tmp' -o -name 'mina*'
//命令查询文件名不是'tmp'的所有文件
# find ! -name 'tmp'