标签:blank 常用 grep 字符 cat 复制 level auto 颜色
find: 文件查找,针对文件名,精确查找,磁盘搜索,io读写,cpu开销大
find [options] [path...] [expression] [action]
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
s - socket文件
-size n[cwbkMG] : 文件大小 为 n 个由后缀决定的数据块。其中后缀为:
b: 代表 512 位元组的区块(如果用户没有指定后缀,则默认为 b)
c: 表示字节数
k: 表示 kilo bytes (1024字节)
w: 字 (2字节)
M:兆字节(1048576字节)
G: 千兆字节 (1073741824字节)
-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-maxdepth 查找最大目录层数 如 1,即只查找一层目录
-fstype 查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件
/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount 在查找文件时不跨越文件系统mount点。
-follow 如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio 对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
===expression===
[root@localhost ~]# find /etc -name "ifcfg-eth0" [root@localhost ~]# find /etc -iname "ifcfg-eth0" //-i忽略大小写 [root@localhost ~]# find /etc -iname "ifcfg-eth*"
[root@localhost ~]# find /etc -size +5M //大于5M [root@localhost ~]# find /etc -size 5M [root@localhost ~]# find /etc -size -5M [root@localhost ~]# find /etc -size +5M -ls //-ls找到的处理动作
-maxdepth levels -mindepth levels [root@localhost ~]# find / -maxdepth 4 -a -name "ifcfg-eth0"
[root@localhost ~]# find /etc -mtime +5 //修改时间超过5天 [root@localhost ~]# find /etc -mtime 5 //修改时间等于5天 [root@localhost ~]# find /etc -mtime -5 //修改时间5天以内
[root@localhost ~]# find /home -user jack //属主是jack的文件 [root@localhost ~]# find /home -group hr //属组是hr组的文件 [root@localhost ~]# find /home -user jack -group hr [root@localhost ~]# find /home -user jack -a -group hr [root@localhost ~]# find /home -user jack -o -group hr [root@localhost ~]# find /home -nouser [root@localhost ~]# find /home -nogroup [root@localhost ~]# find /home -nouser -o -nogroup
[root@localhost ~]# find /dev -type f //f普通 [root@localhost ~]# find /dev -type d //d目录 [root@localhost ~]# find /dev -type l //l链接 [root@localhost ~]# find /dev -type b //b块设备 [root@localhost ~]# find /dev -type c //c字符设备 [root@localhost ~]# find /dev -type s //s套接字 [root@localhost ~]# find /dev -type p //p管道文件
[root@localhost ~]# find . -perm 644 -ls [root@localhost ~]# find . -perm -644 -ls [root@localhost ~]# find . -perm -600 -ls [root@localhost ~]# find . -perm -222 -ls //全局可写 [root@localhost ~]# find /usr/bin /usr/sbin -perm -4000 -ls //包含set uid [root@localhost ~]# find /usr/bin /usr/sbin -perm -2000 -ls //包含set gid [root@localhost ~]# find /usr/bin /usr/sbin -perm -1000 -ls //包含sticky
-regex pattern [root@localhost ~]# 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
==找到后处理的动作 ACTIONS: (默认动作-print)==
-print
-ls
-delete
-exec 后面跟自定义的shell命令
-ok 后面跟自定义的shell命令
[root@localhost ~]# find /etc -name "ifcfg*" [root@localhost ~]# find /etc -name "ifcfg*" -print [root@localhost ~]# find /etc -name "ifcfg*" -ls [root@localhost ~]# find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \; [root@localhost ~]# find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \; [root@localhost ~]# find /etc -name "ifcfg*" -exec rm -rf {} \; [root@localhost ~]# find /etc -name "ifcfg*" -delete 扩展知识:find结合xargs [root@localhost ~]# find . -name "yang*.txt" |xargs rm -rf [root@localhost ~]# find /etc -name "ifcfg-eth0" |xargs -I {} cp -rf {} /var/tmp
1. 将/etc/中的所有目录(仅目录)复制到/tmp下,目录结构不变 # find /etc -type d -exec mkdir /tmp/{} \; 2. 将/etc目录复制到/var/tmp/ 将/var/tmp/etc中的所有目录设置权限777(仅目录) 将/var/tmp/etc中所有文件权限设置为666 # cp -rf /etc /var/tmp/ # chmod -R a=rwX /var/tmp/etc/ 或者 find /var/tmp/etc/ -type d -exec chmod 777 {} \; //分号是找到一个设置一个权限 find /var/tmp/etc/ -type d -exec chmod 777 {} \+ //加号是统一找到后设置权限 find /var/tmp/etc/ ! -type d -exec chmod 777 {} \+ 3. 以下命令的区别是什么? [root@localhost ~]# find /etc -name "ifcfg*" -exec rm -rf {} \; [root@localhost ~]# find /etc -name "ifcfg*" -exec rm -rf {} \+
[root@localhost ~]# mkdir dir1 [root@localhost ~]# touch dir1/file{1..20} [root@localhost ~]# find /root/dir1 -name "file5" [root@localhost ~]# find /root/dir1 ! -name "file5" [root@localhost ~]# find /root/dir1 -name "file5" -o -name "file9" /root/dir1/file5 /root/dir1/file9 [root@localhost ~]# find /root/dir1 -name "file5" -o -name "file9" -ls 1466515 0 -rw-r--r-- 1 root root 0 6月 5 11:15 /root/dir1/file9 [root@localhost ~]# find /root/dir1 -name "file5" -ls -o -name "file9" -ls 1466499 0 -rw-r--r-- 1 root root 0 6月 5 11:15 /root/dir1/file5 1466515 0 -rw-r--r-- 1 root root 0 6月 5 11:15 /root/dir1/file9 [root@localhost ~]# find /root/dir1 \( -name "file5" -o -name "file9" \) -ls 1466499 0 -rw-r--r-- 1 root root 0 6月 5 11:15 /root/dir1/file5 1466515 0 -rw-r--r-- 1 root root 0 6月 5 11:15 /root/dir1/file9 [root@localhost ~]# find /root/dir1 \( -name "file5" -o -name "file9" \) -exec rm -rvf {} \; removed ‘/root/dir1/file5’ removed ‘/root/dir1/file9’
(查询的数据库: /var/lib/mlocate/mlocate.db)
计划任务:每天自动更新数据库 /etc/cron.daily/mlocate.cron
手动更新数据库:updatedb
# locate ifcfg-eth0 # locate ifcfg-enp0s25
grep工具:行过滤
OPTIONS: -i: 不区分大小写 -v: 查找不包含指定内容的行,反向选择 -w: 按单词搜索 -c: 统计匹配到的次数 -n: 显示行号 -r: 逐层遍历目录查找 -A: 显示匹配行及前面多少行 -B: 显示匹配行及后面多少行 -C: 显示匹配行前后多少行 --color=auto :可以将找到的关键词部分加上颜色的显示 -l:只列出匹配的文件名 -L:列出不匹配的文件名 -e: 使用正则搜索 ^key:以什么开头 key$:以什么结尾
每次过滤出来的内容显示颜色:
vim ~/.bashrc alias grep=‘grep --color=auto‘ source ~/.bashrc
使用方法 >>参考
标签:blank 常用 grep 字符 cat 复制 level auto 颜色
原文地址:https://www.cnblogs.com/yanjieli/p/9543329.html