linux 查询命令

linux 查询命令

  • 文档内容均来自其他博客,博客地址如下:
  • 一 find
  • 二 locate

文档内容均来自其他博客,博客地址如下:

https://www.cnblogs.com/scrit/p/5854197.html
https://www.cnblogs.com/xqzt/p/5426666.html

一 find

find 命令格式
find [OPTIONS] [查找起始路径] [查找条件] [处理动作]
一 OPTIONS参数
-P、-L、-H:控制软连接的对待方式,用的不多。不介绍了

二 查找路径
即所要搜索的目录及其所有子目录。默认为当前目录

三 查找条件
1 根据名称查找
-name 区分大小写
-iname 不区分大小写
 备注: 可用*当作通配符。  例如 find ./ -name 'a*'
 
2 根据文件从属关系
-user USERNAME:查找属主指定用户的所有文件;
-group GRPNAME:查找属组指定组的所有文件;
-uid UID:查找属主指定的UID的所有文件
-gid GID:查找属组指定的GID的所有文件;
-nouser:查找没有属主的文件;
-nogroup:查找没有属组的文件

3 根据文件类型筛选 -type
f 普通文件   d 目录文件  l 符合链接文件  b 块 设备文件 
c 字符设备文件  p 管道文件  s 套接字文件
例如: find ./ type f

4 根据文件大小查找
-size [+|-]#UNIT
常用单位:k, M, G
#UNIT:(#-1, #]    -#UNIT:[0,#-1]   +#UNIT:(#, oo)
例如:
 (1) find ./ -size 1k     大于0k 小于1k
 (2 )find ./ -size +1k    大于1K
 (3 )find ./ -size -62k   大于0k  小于61k

5 根据时间戳查找
按照atime(文件的最后访问时间)、mtime(文件的最后修改时间)、ctime(文件最后改变时间)三个变量来查询:
以天为单位
如果以分钟为单位: 需要增加 -daystart
+n意思为查找n天以前的文件,-n为查找n天以内的文件
例如:
find ./ -atime -1   最后访问时间 是一天内
find ./ -daystart -atime -1 最后访问时间 是 一分钟内

二 locate

1 简介
locate(locate) 命令用来查找文件或目录。 locate命令要比find -name快得多,原因在于它不搜索具体目录,而是搜索
一个数据库/var/lib/mlocate/mlocate.db 。这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并
且每天自动更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文
件,却无法查找到,原因就是因为数据库文件没有被更新。为了避免这种情况,可以在使用locate之前,先使用
updatedb命令,手动更新数据库

2 locate 工作 由四部分组成
/usr/bin/updatedb   主要用来更新数据库,通过crontab自动完成的
/usr/bin/locate         查询文件位置
/etc/updatedb.conf   updatedb的配置文件
/var/lib/mlocate/mlocate.db  存放文件信息的文件

3 用法 
Locate [选择参数] [样式]
-b, --basename         match only the base name of path names
-c, --count            只输出找到的数量
-d, --database DBPATH  使用DBPATH指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db
-e, --existing         only print entries for currently existing files
-L, --follow           follow trailing symbolic links when checking file existence (default)
-h, --help             显示帮助
-i, --ignore-case      忽略大小写
-l, --limit, -n LIMIT  limit output (or counting) to LIMIT entries
-m, --mmap             ignored, for backward compatibility
-P, --nofollow, -H     don't follow trailing symbolic links when checking file existence
-0, --null             separate entries with NUL on output
-S, --statistics       don't search for entries, print statistics about eachused database
-q, --quiet            安静模式,不会显示任何错误讯息
-r, --regexp REGEXP    使用基本正则表达式
    --regex            使用扩展正则表达式
-s, --stdio            ignored, for backward compatibility
-V, --version          显示版本信息
-w, --wholename        match whole path name (default)

4 例子
示例1: 搜索etc目录下所有以my开头的文件
[root@cent6 lib]# locate /etc/my

示例2:新增的文件无法locate,使用updatedb
[root@cent6 ~]# touch new.txt
[root@cent6 ~]# locate new.txt
[root@cent6 ~]# updatedb
[root@cent6 ~]# locate new.txt
/root/new.txt

你可能感兴趣的:(Linux,基本命令)