Linux-find查找
find
1 是linux里面的一个实时查找工具,通过制定路径完成文件查找 2 find [options] ..... [查找路径] [查找条件] [处理动作] 3 查找路径:查找的位置,默认是当前文件夹 4 查找条件:制定查找的标准,文件名、大小、类型、日期等等 5 处理动作:对符合条件的文件做什么操作,默认是输出到屏幕上
查找条件
1 - 根据文件名查找 2 - -name 指定名称,可以使用正则 3 - -iname 忽略大小写 4 - -links n 引用次数为n的文件 5 - -regex 后面跟完整路径,而不是文件名, 必须整个路径完全匹配 6 7 - 制定搜索的层级 8 - -maxdepth level 最大的搜索深度,指定的目录为第1层 9 - -mindepth level 最小的搜索深度,包括level层 10 11 - 根据属主、属组来查找 12 - -user username 查找属主为username的文件 13 - -group groupname 查找属组为groupname的文件 14 - -uid id 查找属主为id的文件 15 - -gid id 查找属组为id的文件 16 - -nouser 查找没有属主的文件 17 - -nogroup 查找没有属组的文件 18 19 - 根据文件类型 -type 20 - d 目录 21 - f 文件 22 - l 符号链接 23 - s 套接字 24 - b 块设备 25 - c 字符设备 26 - p 管道文件 27 28 - 空文件或者空目录 29 - -empty 30 31 - 条件 32 - 与 -a 33 - 或 -o 34 - 非 -not 35 36 - 摩根定律 37 - 非(A或者B) 非A 且非B 38 - 非(A且B)非A或非B 39 40 - 排除目录 41 - -path "目录" -prune 42 #例子: 43 #排除一个目录 44 [root@localhost test]#find /etc -path "/etc/sane.d" -prune -o -name "*.conf" 45 #排除两个目录 46 [root@localhost test]#find /etc \(-path "/etc/sane.d" -o -path "/etc/cups" \) -prune -o -name "*.conf" 47 48 - ``` 49 [root@localhost test]#find /etc -name *_config 50 /etc/ssh/ssh_config 51 /etc/ssh/sshd_config 52 [root@localhost test]#find /etc -path /etc/ssh -name *_config 53 ``` 54 55 - 按照大小来查找 56 - -size # (#-1,#] 不包括#-1,包括# 57 - -size -# [0,#-1] 包括#-1 58 - -size +# (#,......) 59 60 - 按照时间来查找 61 - -atime # [#,#+1) 62 - -atime -# (0,#) 63 - -atime +# [#+1,....] 64 - 查找7天以后的文件 find -atime +7 65 - -mtime 66 - -ctime 67 - 以分钟为单位 68 - -amin 69 - -mmin 70 - -cmin
处理动作
1 - -print 默认的处理动作,显示在屏幕上 2 - -ls 类似于ls -l 显示长格式 3 - -delete 删除查找到的文件 4 - -fls file 将查找的结果以长格式保存到文件中 5 - -ok command {} \; 对每一个查找到的文件执行command命令,在执行命令之前要先提示用户是否要执行 6 - -exec command {} \; 对查到的每一个文件执行command命令,不需要确认,一次性交给后面命令处理
xargs
1 - 有的命令不支持管道 2 - 命令参数过长 3 - xargs 将管道前面的内容一条一条的交给后面命令处理 4 - 一般会跟find使用
linux三贱客
grep
awk
sed
grep
1 grep [option] "模式" file 2 3 option 4 5 ``` 6 --color=auto 对匹配到的行添加颜色 7 -v 取反 8 -i 不区分大小写 9 -n 查找的内容增加行号 10 -c 打印匹配到的行数 11 -o 只显示匹配到的文字 12 -q 静默模式 13 -A # after 向下显示#行 14 -B # before 向上显示#行 15 —C # context 上下分别显示#行 16 -e 或者 grep -e 'user' -e 'root' passwd 17 -E 扩展正则表达式 18 -F 不使用正则表达式 19 -r 递归 20 -w 匹配整个单词 21 ```
正则表达式元字符
1 - 字符匹配 2 - . 任意单个字符 3 - [] 匹配指定范围内的任意单个字符 [0-9] [a-z] [A-Z] 4 - [^] 取反 5 - [:upper:] 大写字母 6 - [:lower:] 小写字母 7 - [:alnum:] 字母和数字 8 - [:alpha:] 大小写字母 9 - [:digit:] 数字 10 - [:black:] 空白 11 - [:punct:] 标点符号 12 13 - 匹配次数 14 - * 表示任意次数 15 - .* 任意字符任意次数 16 - \? 表示0或者1次 17 - \+ 至少一次 18 - \{n\} 表示n次 19 - \{m,n\} 最少m次,最多n次 20 - \{n,\} 至少n次 21 - \{,n\} 至多n次 22 23 - 位置锚定 24 - ^ 开头 25 - $结尾 26 - ^$ 空行 27 28 ``` 29 grep -v "^#" /etc/ssh/sshd_config |grep -v "^$" 显示不以#开头并且不是空行 30 ``` 31 32 - 分组 33 ```SHELL 34 grep "\(c\|C\)at" a 35 ``` 36 37 - 向后引用 38 - \1 前面第一个括号出现的内容匹配完成之后再后面在出现一次 39 - \2 40 - 扩展正则表达式 41 - 与正则表达式的区别是不需要转义
❤️ 如果你喜欢这篇文章,请点赞支持! 👍 同时欢迎关注我的博客,获取更多精彩内容!
本文来自博客园,作者:佛祖让我来巡山,转载请注明原文链接:https://www.cnblogs.com/sun-10387834/articles/12756226.html

                
            
        
浙公网安备 33010602011771号