码迷,mamicode.com
首页 > 其他好文 > 详细

20181216文件查找

时间:2018-12-16 19:30:35      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:ati   tmp   option   时间   设备   sysconf   忽略   变量   path   

文件查找

grep: 文件内容过滤
find: 文件查找,针对文件名
一、命令文件
which ls //从 PATH 环境变量 (echo $PATH)

[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/htop/bin/:/root/bin
二、任意文件
(一). locate (查询的数据库: /var/lib/mlocate/mlocate.db)
计划任务:每天自动更新数据库 /etc/cron.daily/mlocate.cron
手动更新数据库:updatedb 在查找之前,先要更新数据库
locate ifcfg-eth0
locate ifcfg-enp0s25

(二)find(尽量缩小找的范围)
find [options] [path...] [expression] [action]
1.按文件名
[root@tianyun ~]# find /etc -name "ifcfg-eth0"
[root@tianyun ~]# find /etc -iname "ifcfg-eth0" //-i 忽略大小写
[root@tianyun ~]# find /etc -iname "ifcfg-eth*" //借助通配符

2.按文件大小:
[root@tianyun ~]# find /etc -size +5M //大于 5M
[root@tianyun ~]# find /etc -size 5M //等于 5M
[root@tianyun ~]# find /etc -size -5M //小于 5M
[root@tianyun ~]# find /etc -size +5M -ls //-ls 找到的处理动作

3.指定查找的目录深度:
-maxdepth levels
-mindepth levels
[root@tianyun ~]# find / -maxdepth 3 -a -name "ifcfg-eth0"

4.按时间找(atime,mtime,ctime):
[root@dong ~]# ll -t /etc |head 查看最新修改的文件
-rw-r--r--. 1 root root 1309 12月 16 10:01 tpvmlp.conf
-rw-r--r--. 1 root root 239 12月 16 10:01 resolv.conf
-rw-r--r--. 1 root root 576 12月 16 10:01 mtab

[root@dong ~]# ll -t /etc |tail 最旧的文件
-rw-r--r--. 1 root root 233 1月 12 2010 printcap
-rw-r--r--. 1 root root 6455 1月 12 2010 protocols
-rw-------. 1 root root 122 1月 12 2010 securetty

[root@tianyun ~]# find /etc -mtime +5 //修改时间超过 5 天(120小时)
[root@tianyun ~]# find /etc -mtime 5 //修改时间等于 5 天
[root@tianyun ~]# find /etc -mtime -5 //修改时间 5 天以内

5.按文件属主、属组找:
[root@tianyun ~]# find /home -user jack //属主是 jack 的文件
[root@tianyun ~]# find /home -group hr //属组是 hr 组的文件
[root@tianyun ~]# find /home -user jack -group hr //属主是jack,属组是group
[root@tianyun ~]# find /home -user jack -a -group hr //和
[root@tianyun ~]# find /home -user jack -o -group hr //或
[root@tianyun ~]# find /home -nouser
[root@tianyun ~]# find /home -nogroup
[root@tianyun ~]# find /home -nouser -o -nogroup

6.按文件类型:
[root@tianyun ~]# find /dev -type f //f 普通
[root@tianyun ~]# find /dev -type d //d 目录
[root@tianyun ~]# find /dev -type l //l 链接
[root@tianyun ~]# find /dev -type b //b 块设备
[root@tianyun ~]# find /dev -type c //c 字符设备
[root@tianyun ~]# find /dev -type s //s 套接字
[root@tianyun ~]# find /dev -type p //p 管道文件

7.按文件权限
[root@tianyun ~]# find . -perm 644 -ls //当前目录下查找权限是644的
[root@tianyun ~]# find . -perm -644 -ls //当前目录下查找权限是包含644的
[root@tianyun ~]# find . -perm -600 -ls // 只要所有者有读写就可以
[root@tianyun ~]# find . -perm -222 -ls //全局可写
[root@tianyun ~]# find /usr/bin /usr/sbin -perm -4000 -ls //包含 set uid
[root@tianyun ~]# find /usr/bin /usr/sbin -perm -2000 -ls //包含 set gid
[root@tianyun ~]# find /usr/bin /usr/sbin -perm -1000 -ls //包含 sticky

8.按正则表达式:
-regex pattern
[root@tianyun ~]# find /etc -regex ‘.ifcfg-eth[0-9]‘
.
任意多个字符
[0-9] 任意一个数字
[root@localhost ~]# find /etc -regex ‘.ifcfg-enp0s25‘
/etc/sysconfig/network-scripts/ifcfg-enp0s25
[root@localhost ~]# find /etc -regex ‘.
ifcfg-enp0s[0-9]+‘
/etc/sysconfig/network-scripts/ifcfg-enp0s25

9.找到后处理的动作 ACTIONS: (默认动作-print)
-ls
-delete
-exec 后面跟自定义的 shell 命令
-ok 后面跟自定义的 shell 命令
[root@tianyun ~]# find /etc -name "ifcfg" -print[root@tianyun ~]# find /etc -name "ifcfg" -ls
[root@tianyun ~]# find /etc -name "ifcfg" -exec cp -rvf {} /tmp \; //{}表示前面查找到的结果
[root@tianyun ~]# find /etc -name "ifcfg
" -ok cp -rvf {} /tmp \; //+v查看效果,OK会有提示
[root@tianyun ~]# find /etc -name "ifcfg" -exec rm -rf {} \;
[root@tianyun ~]# find /etc -name "ifcfg
" -delete

扩展知识:find 结合 xargs
[root@tianyun ~]# find . -name "yang*.txt" |xargs rm -rf / /参数的传递xargs
[root@tianyun ~]# find /etc -name "ifcfg-eth0" |xargs -I {} cp -rf {} /var/tmp

20181216文件查找

标签:ati   tmp   option   时间   设备   sysconf   忽略   变量   path   

原文地址:http://blog.51cto.com/8450442/2331167

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!