文件查找

文件查找

 

 

一.文件查找locatefind

1.     locate命令

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

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

依赖于事先构建 的索引

索引的构建是在系统较为空闲时自动进行( 周期性
任务) 管理员手动更新数据库(updatedb)

索引构建过程需要遍历整个根文件系统,极
消耗资源

2.       locate的特点

n  查找 速度 快

n  模糊 查找

n  非实时查找

n  搜索的是文件的全路径,不仅仅是文件名

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

3.       locate的用法

-i 不区分大小写的搜索

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

 locate conf

  搜索名称或路径中带有“conf
的文件

 locate -r ‘\.conf$’

  使用Regex 来搜索以“.conf ”结尾的文件

               例如:查找以后缀为.Log的文件

                             [root@localhost ~]#  Locate  
–I   .log

                               /var/log/gdm/:0-slave.lo

/var/log/gdm/:0.log

/var/log/gdm/:0.log.1

只列出部分结果,结果太多了

查找前五行以.log结尾的文件

[root@localhost ~]# locate -i -n5 .log

/etc/csh.login

/root/.imsettings.log

/root/install.log

/root/install.log.syslog

/root/.cache/mozilla/firefox/w5xc6vnw.default/cache2/index.log

二.         Find命令

1.       find命令的特点

n  查找速度略慢

n  精确查找

n  实时查找

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

          2.   语法:

find [OPTION]… [ 查找路径] [ 查找条件] [ 处理动作]

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

查找条件:指定的查找标准,可以文件名、大小、类型、

权限等标准进行;默认为找出指定路径下的所有文件

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

2.       选项

-type TYPE:

f:  普通文件

d:  目录文件

l:  符号链接文件

s :套接字文件

b:  块设备文件

c:  字符设备文件

p: 管道文件

            3     -maxdepth level 最大搜

-minxdepth level  最小搜索深度

-name 基于名称的精确查找

-iname 基于名称忽略大小写的精确查找查找

-inum 基于inode查找

-samefile 基于相同inode号的查找(查找硬链接)

-links n 硬链接为n的文件 

-regex 支持正则 默认为(emacs标准)

-regextype egrep -regex 支持egrep同标准的正则 

-user 用户名  基于文件owner的查找

-group 组名 基于文件group

-uid userid 基于文件uid的查找

-gid groupid 基于文件gid的查找

-nouser 查找没有owner的文

-nogroup 查找没有group的文件

-type 基于文件类型的查找

  4 例子

  1.   找出/tmp 目录下,属主是root ,且文件名 不以f 开头的

/etc/lsb-release.d/base-4.0-amd64

1836489    0 -rw-r–r–   1 root    
root            0 Feb 22  2013 /etc/lsb-release.d/printing-4.0-amd64

1836491    0 -rw-r–r–   1 root    
root            0 Feb 22  2013 /etc/lsb-release.d/graphics-4.0-amd64

1836490    0
-rw-r–r–   1 root     root            0 Feb 22  2013 /etc/lsb-release.d/printing-4.0-noarch

1835855    4 -rw-r–r–   1 root    
root          212 Mar 23 02:12
/etc/statetab

2.查找/etc/ 下,除/etc/sane.d 目录的其它所有.conf
后缀的文件

find /etc \(–path
‘/etc/sane.d’ –o –path ’/etc/fonts’ \)

/etc/lsb-release.d/base-4.0-noarch

/etc/lsb-release.d/core-4.0-noarch

/etc/lsb-release.d/graphics-4.0-noarch

/etc/lsb-release.d/core-4.0-amd64

/etc/lsb-release.d/base-4.0-amd64

/etc/lsb-release.d/printing-4.0-amd64

3,。查找/var目录下属主为root,且属组为mail的所有文件

[root@localhost
~]# find /var -user root -group mail

/var/spool/mail

/var/spool/mail/hyma

4.查找/var目录下不属于rootlpgdm的所有文件

[root@localhost
~]# find /var -not \( -user root -o -user lp -o -user gdm \)

/var/lib/pulse

/var/lib/dav

/var/lib/nfs/statd

/var/lib/nfs/statd/sm

/var/lib/nfs/statd/sm.bak

/var/lib/nfs/state

5. 查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件

[root@localhost
~]# find /var -mtime -7 -a -not -user root -not -user postfix -ls

1180965    4 dr-x–x–x   2 lp      
sys          4096 Aug 11 07:50 /var/run/cups/certs

1181672    4 -rw-r–r–   1 rpcuser 
rpcuser         5 Aug 11 07:50
/var/run/rpc.statd.pid

6. 查找/etc目录下大于1M且类型为普通文件的所有文件

[root@localhost
~]# find /etc -size +1M -a -type f

/etc/selinux/targeted/modules/active/policy.kern

/etc/selinux/targeted/policy/policy.24

/etc/gconf/gconf.xml.defaults/%gconf-tree.xml

7. 查找/etc目录下所有用户都没有写权限的文件

[root@localhost
~]# find /etc -not -perm  /222 -ls|head
-20|tail -10

1837075    4 -r–r–r–   1 root    
root          338 Feb 22  2016 /etc/lvm/profile/cache-smq.profile

1837259    4 -r–r—–   1 root    
root         3729 Dec  8  2015
/etc/sudoers

1835989    4 -r-xr-xr-x   1 root    
root         1362 Mar 23 07:25
/etc/rc.d/init.d/blk-availability

1837081    4 -r-xr-xr-x   1 root    
root         3045 Mar 23 07:25
/etc/rc.d/init.d/lvm2-monitor

1837080    4 -r-xr-xr-x   1 root    
root         2137 Mar 23 07:25

8. 查找/etc目录下至少有一类用户没有执行权限的文件

[root@localhost
~]# find /etc -not -perm  111 -ls |head
-10

1835009   12 drwxr-xr-x 119 root     root 
      12288 Aug 11 15:41 /etc

1835687    4 -rw-r–r–   1 root    
root           20 Mar 10  2015 /etc/fprintd.conf

1835141    4 -rw-r–r–   1 root    
root          111 May 11  2016 /etc/magic

1835898    4 drwxr-xr-x   2 root    
root         4096 Mar 23 02:12
/etc/sysctl.d

9. 查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件

[root@localhost
~]# find /etc -perm -113 -ls |head -10

1835370    0 lrwxrwxrwx   1 root    
root           26 Jul  4 19:19
/etc/X11/fontpath.d/xorg-x11-fonts-Type1 -> /usr/share/X11/fonts/Type1

1836589    0 lrwxrwxrwx   1 root    
root           29 Jul  4 19:23
/etc/X11/fontpath.d/cjkuni-fonts-uming -> /usr/share/fonts/cjkuni-uming

1835030    0 lrwxrwxrwx   1 root    
root           27 Jul  4 19:17 /etc/X11/fontpath.d/liberation-fonts
-> /usr/share/fonts/liberation

1837292    0 lrwxrwxrwx   1 root    
root           27 Jul  4 19:25
/etc/X11/fontpath.d/xorg-x11-fonts-100dpi:unscaled:pri=30 ->
/usr/share/X11/fonts/100dpi

1837262    0 lrwxrwxrwx   1 root    
root           25 Jul  4 19:24

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

(1)
TouchTouch
上一篇 2017-08-12
下一篇 2017-08-12

相关推荐

  • MapReduce数据流

    Hadoop的核心组件在一起工作时如下图所示: 图4.4高层MapReduce工作流水线   MapReduce的输入一般来自HDFS中的文件,这些文件分布存储在集群内的节点上。运行一个MapReduce程序会在集群的许多节点甚至所有节点上运行mapping任务,每一个mapping任务都是平等的:mappers没有特定“标识物”与其关联。因此,任意的map…

    Linux干货 2015-05-13
  • Linux中的权限修改指令及正则表达式

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限 [root@centos6 ~]# cp -r /etc/skel/ /home/tuser1 [root@centos6 ~]# ls -la&…

    Linux干货 2016-10-24
  • 文本处理三剑客之Gawk ✧

        AWK可以说是一种语言,他有着自己的语法,可以实现函数定义,变量赋值,条件选择(循环,判断,选择)…总之是值得深入研究一下的。     AWK的起源:是个报告生成器,可以格式化文本输出内容,它的命名是由Aho,Weinberger,Kernighan三位作者首…

    Linux干货 2016-09-21
  • 士大夫

    士大夫

    2017-11-13
  • 马哥教育网络班-N26

    From the beginning~~~

    Linux干货 2016-12-26
  • 第一周 Linux基础知识

    Linux基础

    2018-03-18