文本查找相关命令简单介绍

文件查找命

在文件系统上查找符合条件的文件

  • 非实时查找:基于索引查找 locate

  • 实时查找:find


locate介绍

依赖于事先构建的索引:索引的构建是在系统较为空闲时自动进行(周期性任务):手动更新数据库(updatedb)

索引构建过程需要遍历整个根文件系统,极消耗资源,生产中尽量避免手动更新。

语法

locate KEYWORD

-i:忽略大小写搜索

-n N:只列举前N个匹配项目。


find介绍

实时查找工具,通过遍历指定路径下的文件系统完成文件查找

语法: find [选项]…[查找路径] [查找条件] [处理动作]

  • 查找路径:指定具体目标路径,默认为当前目录
  • 查找条件:指定查找标准,可以文件名、大小、类型、权限等标准进行,默认为找出路径下的所有文件
  • 处理动作:对符合条件的文件做什么操作,默认输出至屏幕

查找条件

根据文件名

-name “文件名称”:支持使用glob

[root@localhost: /root]# find /etc -name "passwd" 
/etc/pam.d/passwd 
/etc/passwd

-iname “文件名称”不区分字母大小写


根据属主、属组

-user:查找属主为指定用户的文件 

-group:查找属组为指定组的文件

[xiangge@localhost: /home/xiangge]$ find /home -user xiangge -ls
 523265 4 drwx------ 16 xiangge  xiangge 4096 Apr 9 21:51 /home/xiangge
 523388 4 -rw------- 1 xiangge  xiangge 1112 Apr 9 22:00 /home/xiangge/.bash_history 

-uid:查找属组为指定UID号的文件

-gid:查找属组为指定的GID号的文件

-nouser:查找没有属主的文件

-nogroup:查找没有属组的文件


根据文件类型查找

-type:

  • f:普通文件
  • d:目录文件
  • l:符号链接文件
  • s:套接字文件
  • b:块设备文件
  • c:字符设备文件
  • p:管道文件
[xiangge@localhost: /home/xiangge]$ find /tmp -type d -ls 
1179649 4 drwxrwxrwt 15 root     root 4096 Apr 9 22:50 /tmp 
1577727 4 drwxrwxrwt 2 root     root 4096 Apr 3 23:00 /tmp/.XIM-unix 
1313311 4 drwxrwxrwt 2 root     root 4096 Apr 3 23:25 /tmp/.X11-unix 
1446044 4 drwxrwxrwt 2 root     root 4096 Apr 3 23:00 /tmp/.Test-unix 
1577726 4 drwxrwxrwt 2 root     root 4096 Apr 3 23:25 /tmp/.ICE-unix 
1185729 4 drwx------ 3 root     root 4096 Apr 3 23:22 /tmp/systemd-private-fb3197586e804ebe969df0ca549914a1-rtkit-daemon.service-LcZqdW

组合条件

  • 与:-a
  • 或:-o
  • 非:-not,!

事例:找出/tmp目录下,属主不是root,且文件名不是fstab的文件

第一方法:
find /tmp \( -not -user root -a -not -name 'fstab' \) -ls
  
第二种方法:
find /tmp -not \( -user root -0  -name 'fstab' \) -ls

根据文件大小查找

-size [+][-]#UNIT 常用单位:k,M,G

如:

  • 5k: 5k<x<=6k
  • -5k: x<5k
  • +5: x>6k
[xiangge@localhost: /home/xiangge]$ find /var -size -5k -ls

根据时间戳查找

以天为单位:

  • atime[+|-]#
  • mtime
  • ctime

如:

7:7<=x<8

-7:x<7

+7:x>=8

以分钟为单位

  • amin
  • mimn
  • cmim

处理动作:

  • -print 打印到屏幕上
  • -ls 打印到屏幕上 类似于ls -l
  • -delete 删除操作 只删除文件,不能删除非空目录
  • -fls file 查找到的文件信息保存到指定的文本中
  • -ok 在执行后面的动作之前会提示你是否需要执行(交互式的)
  • -exec CMD {} ; 执行后面的命令 {} 表示前面find出的结果 ; 固定用法
[xiangge@localhost: /home/xiangge]$ touch test.txt
[xiangge@localhost: /home/xiangge]$ find /home/xiangge  -cmin -5 
/home/xiangge/test.txt
[xiangge@localhost: /home/xiangge]$ find /home/xiangge  -cmin -5 -exec mv {} {}.new \; 
/home/xiangge/test.txt.new

原创文章,作者:祥健,如若转载,请注明出处:http://www.178linux.com/73098

(0)
祥健祥健
上一篇 2017-04-10
下一篇 2017-04-10

相关推荐

  • N21天天第十周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) CentOS主机按以下顺序启动 1、POST加电自检 2、BIOS读取CMOS中的BIOS设置的参数来识别基础硬件,寻找到启动设备 3、MBR 1)读取启动设备MBR中前446字节的bootloader 2)读取MBR后的扇区用来识别grub以及内核kernel所在的区域 3)启动g…

    Linux干货 2016-09-26
  • 计算机和操作系统的一些概念

    一、计算机组成     (一) 硬件         CPU:运算器、控制器、寄存器、缓存器         存储器:主内存,RAM(Random Access…

    Linux干货 2016-08-15
  • read,locate ,find 的总结及相关联系

    read 变量名 read 变量名1 [变量名2] < 文件名不支持管道read 变量名1 [变量名2] <<< “值1 [值2] …”使用read来把输入值分配给一个或者多个shell变量     -p 指定要显示的提示     # read -p…

    Linux干货 2017-08-12
  • VSFTPD+PAM+[基于文件虚拟用户认证 | 基于MYSQL虚拟用户认证]

    VSFTPD+PAM+[基于文件虚拟用户认证 | 基于MYSQL虚拟用户认证] VSFTPD+PAM+[基于文件虚拟用户认证 | 基于MYSQL虚拟用户认证] 一、实验环境 二、实验步骤 1、通过mysql数据库方式虚拟用户认证 1.1数据库配置 1.2FTP配置 1.3测试 2、通过文件方式进行虚拟用户认证 一、实验环境 CentOS 6.7+vsftpd…

    Linux干货 2016-04-18
  • linux文件权限管理和用户,组管理常用命令应用实例

    用户和组概念简述 用户一般指使用计算机的人,GNU/linux通过用户和用户组实现对计算机的文件访问和设备使用控制。 用户分类1.管理员root(类似皇帝,权力最大)2.普通用户:分为系统用户和普通登录用户。系统用户不登录,常用于发起一些进程提供服务,防止进程被劫持带来的风险,所以尽量减少以root身份发起进程对外提供服务。3.用户标识UID。管理员的UID…

    2017-10-05
  • Shell 脚本作业(8月11号)

    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 #!/bin/bash # author:huiping # version:1.0.1 # date:2016-08-11 # describe:&nb…

    Linux干货 2016-08-15

评论列表(1条)

  • renjin
    renjin 2017-04-12 13:05

    主要写了linux下查找方件命令的详细用法,内容写的很不错,排版也挺好的,赞!