文件查找

locate 和 find

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

locate :非实时查找(数据库查找)

语法 :locate  +  文件名  直接查找

按照查询系统上预建的文件索引数据库

/var/lib/mlocate/mlocate.db    (每天开机以后自动生成,刚装的系统就找不到)

[XJ3698}3GSPT{[95YDR_FI

特点: 查找速度快        模糊查找       非实时查找      搜索的是文件的全路径,不仅仅是文件名

可能只搜索用户具备读取和执行权限的目录

locate 的命令选项: -i         :不区分大小写

-n  N  :   只列举前N个

-r        :   可以使用正则表达式

查找文件 locate   f1.sh

J8CNY}[L1B@F{~0}(RLXOLI

locate   /data   -i   f1.sh

(@SMDV31TXN{8W{0WCX9(6P

locate  -n5   f1.sh     显示出前面5行

F55`%)H~JZM05`{6`G0VA[B

locate -r “^/usr/.*\.lua$”      在/data 目录下 寻找以/usr 开头 以.lua结尾

AUM7M@RI1`RLTHZX$J%K7$6

 

find : 实时查找工具,通过遍历指定路径完成文件查找

工作特点: 查找速度略慢        精确查找      实时查找         可能只搜索用户具备读取和执行权限的目录

语法 : find 【OPTION】……[查找路径]【查找条件】【处理动作】

查找路径:指定具体目标路径;默认为当前目录

查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径                                        下的所有路径

处理动作:对符合条件的文件做操作,默认输出至屏幕

查找条件

指搜索层级   -maxdepth    level 最大搜索目录深度,指定目录为第一级

-mindepth     level 最小搜索目录深度

根据文件名或inode查找:

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

*, ?, [], [^]

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

-inum n 按inode号查找

-samefile name 相同inode号的文件

-links n 链接数为n的

-regex “PATTERN”:以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称

find /etc/ -maxdepth 2 -name passwd    取/etc/ 下 含有passwd的最少第2层目录

_39N0TYKD{~%OZQ$8MQSFFS

find /etc/  -maxdepth 2 -mindepth  2 -name passwd  取/etc/ 最少2层 最多2层 含有passwd的目录

F~A4SXCGX[$OTUWIO7X3~5V

ll -ia  可以看到文件的节点编号

ARW]ZG6[KAPVA2ZD48F$VAN

find  /data  inum 68   取 /data 下文件  68的节点编号

K5UG$(9F~0OR{$@]`Z{_FS7

find /data -samefile lg.out  -ls   取 /data 目录下和lg.out相同的节点编号

0F6HVDZQZ][0WEQLDI5HO]W

find /etc/ -regex “.*\.conf$”   用正则表达式取/etc/下的 以.conf结尾的文件

H%A)PLEYMN{43SGNMONEODO

根据属主,属主查找:

user USERNAME : 查找属主为制定用户的(UID)的文件

-group GRPNAME: 查找属组为指定组(GID)的文件

find   /home  -user  heihei  -ls   查找在/home 下 用户为heihei 的文件属性

EYY60KUKHMREAEE8@}PL5MH

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

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

find  /home  -nouser   查找/home下没有所属主的文件

LW)F70674NVXL@QF]$9F}VF

find /home -nouser -a -nogroup -ls 查找/home下即没有所属主有没有所属组的文件

G]{`~%A[7]3OFGH{Z_S)07L

find /home -nouser -o -nogroup

9_LN0KFM)7BZIF_`YN2H$FX

根据文件类型查找

-type :        f  :普通文件     d:目录文件    l :符号链接文件  s: 套接字文件    b: 块设备文件

c: 字符设备文件    p : 管道文件

空文件或目录

-empty

find /etc/ -empty -type f   查找/etc/ 普通空文件目录

`FKA7`KV@~]1K0[T2ZUEHUK

-not  ,   !

find  /data ! -empty  -type f   查找/data目录下非空的普通文件

(HDOYV[)ITY7_185OOGV@48

!A -a !B = !(A -o B)          !A -o !B = !(A -a B)

find /tmp \( -not -user root -a -not -name ‘f*’ \) -ls
find /tmp -not \( -user root -o -name ‘f*’ \) –ls

2LXD6[(][_J(7IHT}J_3~3I

根据文件的大小来查找

-size  [+|-] # UNIT  常用单位 :k, M ,G , c (byte)

#UNIT: (#-1, #]
如:6k 表示(5k,6k]
-#UNIT:[0,#-1]
如:-6k 表示[0,5k]
+#UNIT:(#,∞)
如:+6k 表示(6k,∞)

DZ`9J~8WZNRMP}HE3_K4E]5

如果SIZE 后面 跟数字 # 大小的话搜索出的数字是(数字#-1 ~ 到数字#)

如果size 后面跟数字 -#  的大小的话搜索出的数字是【0 ~ -1】

如果size后面跟数字 +# 的大小的话搜索出的数字是(数字# ~ 无穷大)

根据事件戳 以天为单位

-atime [+|-]#,
#: [#,#+1)
+#: [#+1,∞]
-#: [0,#)
-mtime
-ctime
以“分钟”为单位:
-amin
-mmin
-cmin

如果-atime 后面跟 # 【# ~ #+1)

如果-atime后面跟 -#【0 ~ # )

如果-atime后面跟+#【#+1 ~ 无穷大】

%)V]F7PIXOA_OYVH%WU2}NW

查看文件的时间用   stat  文件名

根据权限查找

-perm  [-|/] MODE

MODE: 精确权限匹配

/MODE:任何一类(u,g,o)对象的权限中只要能一位匹配即可,或关系,+ 从centos7开始淘汰

-MODE:每一类对象都必须同时拥有指定权限

find /data -perm 644  -ls     查找在/data目录下权限为644的文件

9QE8IZVVQ3M_M__D_RZ${MP

find /data -perm  /644  -ls  查找在/data目录下只要有权限符合644中的任意一个都可以显示出来IMMH~2SUS[EHFS)DNZ}0~BQfind /data -perm -644  -ls  查找在/data目录下权限为644以上的文件60QOISYX_~TFJM4XFYXX7$Q

文件的处理动作

-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认

-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令

{}: 用于引用查找到的文件名称自身

ind传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令

find  /data  -name  “f*”  -exec mv {}  {}.bak2.org  \;   把/data 目录下带 f 的文件移动到 /data 目录下并改名为以.bak2.org 结尾的文件

PB}[C5EF8UW`NH8V{$L5634

在 find 中带有-ok   -exec  必须以    \;  作为结束命令

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96997

(0)
祝韵杰-桃子祝韵杰-桃子
上一篇 2018-04-24
下一篇 2018-04-25

相关推荐

  • 计算机的组成及其功能

    一.计算机的组成
    二.功能浅析

    2018-05-11
  • 加密与安全

    加密与安全 SSH端口转发 SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做“隧道”(tunneling),这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP…

    Linux笔记 2018-06-11
  • 计算机的组成及其功能

    01.描述计算机的组成及其功能 计算器是由运算器,控制器,存储器,输入装置和输出装置五大部件组成计算机, 每一部件分别按要求执行特定的基本功能。 输入设备  将数据、程序、文字符号、图象、声音等信息输送到计算机中。常用的输入设备有键盘、鼠标、触摸屏、数字转换器等。 输出设备  将计算机的运算结果或者中间结果打印或显示出来。常用的输出设备有:显示器、打印机、绘…

    2018-08-09
  • history man info tab 的用法

    “whatis conmand =man -f cm 简单说明 centos6 安装what is 输入 make whatis centos7 创建 mandb “内部命令用 help conmand 外部命令 用 command –help 外部命令 man command (外部命令用man比较详细) 可以用/ 搜 …

    Linux笔记 2018-03-31
  • Linux系统基础目录结构及功能说明

    Linux系统基础目录结构及功能说明 FHS:Filesystem Hierarchy Standard    /bin:所有用户可用的基本命令程序文件    /sbin:供系统管理使用的工具程序;    /boot:引导加载器必须用到的各静态文件;kernel,initramfs(initrd),grub等    /dev:存储特殊文件或设备文件;    …

    2018-05-12
  • 标准I/O和管道

    input:输入读入数据 output:输出数据文件的 打开的文件都有一个fd: file descriptor (文件描述符) ll /proc/$$/fd #查看fd exec 8<>/data/hosts #指定fd I/O重定向:该变默认位置 > #把标准输出重定向到文件(一个”>”是覆盖,”>>”是追加) 2&g…

    2018-04-02