Back to Blogs
Linux
搜索
查找

Linux 四大搜索查找命令

Soloman
2020-02-07

Linux 四大搜索查找命令

1 locate

Linux locate 命令用于查找符合条件的文件。

# 基本格式
locate keyword

locate nginx.conf

locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准(所以,你可能查找不到最近的文件),一般是系统自己维护,默认情况下每天执行一次,也可以手工升级数据库 ,命令为:

updatedb

2 whereis

在Linux系统中,可执行文件称为二进制文件,当需要查找二进制文件时,whereis命令非常高效。该命令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。

# 基本格式
whereis binary

whereis python3

3 which

Linux which 命令会在环境变量$PATH设置的目录里查找符合条件的可执行文件。

# 基本格式
which binary

# 输出/bin/bash
which bash

4 find

Linux find 命令用来在指定目录下查找文件。如果使用该命令时不设置任何参数,则 find 命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。

# 基本格式
find directory options expression

# 从系统根目录开始查找test.txt文件
find / -type f -name test.txt

# 在/home目录下查找所有名称为test的各种格式的文件
find /home -type f -name test.*

# 将当前目录及其子目录下所有文件后缀为.c的文件列出来
find . -name "*.c"

# 在home目录下查找文件权限不为0600或者目录权限不为0700的文件目录
find ~ \( -type f -not -perm 0600 \) -or \( -type d -not perm 0700 \)

Linux find 命令支持通配符和众多选项参数(options)

options参数说明
-type d/f/l文件类型,f:一般文件,l:符号连结,d:目录
-size n文件大小,如-size +500M表示查找500M以上的文件
-name name文件名称符合 name 的文件
-iname name同上,iname 会忽略文件名大小写
-atime n在过去 n 天内被读取过的文件
-ctime n在过去 n 天内创建的文件
-mtime n在过去 n 天内修改过的文件
-perm xxxx按照执行权限查找

多条件组合参数

参数参数说明
-or或,多个条件满足其一
-and且,多个条件同时满足
-not相反,对条件取反