文件查找
一.文件查找locate和find
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目录下不属于root、lp、gdm的所有文件
[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