Linux常用查找命令

时间:2023-01-20 09:20:11

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