find
find使用基本格式如下
find <指定目录> <指定条件> <指定动作>
以下是几个示例,搜索范围包括指定目录和子目录
// 在根目录下查找文件名以.txt结尾的文件
find / -name '*.txt'
// 在根目录下查找文件名以abc开头的文件,并显示详情
find / -name 'abc*' -ls
// 在当前目录中搜索过去10分钟更新的普通文件,如果不加-type f参数,则搜索普通文件+特殊文件+目录
find . -type f -mmin -10
locate
locate比find速度要快,原因在于不搜索目录,而是搜索linux系统的数据库,linux系统会自动创建这个数据库。
// 搜索etc目录下所有以sh开头的文件
locate /etc.sh
// 搜索用户主目录下所有以sh开头的文件
locate ~/sh
// 搜索用户主目录下所有以sh开头的文件,并且忽略大小写
locate -i ~/sh
grep
grep使用的格式如下
grep [选项] pattern [文件名]
- 选项是一些参数,如-i表示忽略大小写
- pattern是匹配模式,类似于正则表达式的基本使用,如^匹配行开头
- 文件名是指搜索的目录或文件
使用示例:
// 在ls的结果中搜索以a开头的文件或目录
ls | grep '^a'
// 显示所有以d开头的文件中包含test的行
grep 'test' d*
xargs
管道 + xargs表示把上游的输出转化为下游的输入
比如:
// 移除当前目录中所有以.bak结尾的文件
ls *.bak | xargs rm -f
whereis
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
whereis grep
which
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which grep
type
type命令主要是判断一个命令是外部命令还是shell自带的命令。
type cd
type grep
// 加上-p参数相当于which命令
type -p grep