本文共 3622 字,大约阅读时间需要 12 分钟。
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-eth0locate 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 -nogroup6.按文件类型:
[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 //包含 sticky8.按正则表达式:
-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-enp0s259.找到后处理的动作 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转载于:https://blog.51cto.com/8450442/2331167