find命令和grep

简介:

为什么要把这两个命令放到一起了?没有为什么。当你不用一个命令的时候就会慢慢遗忘它,所以我刚好用到这两个命令,就总结一下。


一、find命令


1.在某目录下查找名为“main.c”的文件

 find /home/zhaoxh/ -name main.c

2.查找文件名中包含某字符(如"main")的文件

 find /home/zhaoxh/ -name '*main*'

 find /home/zhaoxh/ -name 'main*'

 find /home/zhaoxh/ -name '*main'

3.根据文件的特征进行查询

 find /home/zhaoxh/ -amin -10    #查找在系统中最后10分钟访问的文件

 find /home/zhaoxh/ -atime -2    #查找在系统中最后48小时访问的文件

 find /home/zhaoxh/ -empty       #查找在系统中为空的文件或者文件夹

 find /home/zhaoxh/ -group cat    # 查找在系统中属于groupcat 的文件(试了,命令不对。)

 find /home/zhaoxh/ -mmin -5     # 查找在系统中最后5 分钟里修改过的文件

 find /home/zhaoxh/ -mtime -1    #查找在系统中最后24 小时里修改过的文件

 find /home/zhaoxh/ -nouser      #查找在系统中属于作废用户的文件(不明白是什么意思)

 find /home/zhaoxh/ -amin 10     #查找在系统中最后10分钟访问的文件

 find /home/ftp/pub -user zhaoxh   #查找在系统中属于zhaoxh这个用户的文件

 (PS:以上都是在 /home/zhaoxh/文件夹下进行的操作)

4.使用混合查找方式查找文件

 find /tmp -size +10000000c -and -mtime +2  #查找/tmp目录中大于10000000字节并且在48小时内  修改的某个文件

 find /tmp -user tom -or -user george   #查找/tmp目录中属于tom或者george这两个用户的文件

 find /tmp ! -usr fred             #查找/tmp目录中不属于fred的文件

5.查找并显示文件

 find /home/zhaoxh/ -name 'main.c' -ls  #在目录下查找名为“mian.c”的文件,并显示这些文件的信息

二、grep命令

1.如果你想在当前目录下 查找"hello,world!"字符串,可以这样:

 

 grep -rn "hello,world!" *

 

 * : 表示当前目录所有文件,也可以是某个文件名

 -r 是递归查找

 -n 是显示行号

 -R 查找所有文件包含子目录

 -i 忽略大小写

2.下面是一些有意思的命令行参数:

 grep -i pattern files :不区分大小写地搜索。默认情况区分大小写, 

 grep -l pattern files :只列出匹配的文件名, 

 grep -L pattern files :列出不匹配的文件名, 

 grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不  是‘magical’), 

 grep -C number pattern files :匹配的上下文分别显示[number]行, 

 grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行, 

 grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。 

 这里还有些用于搜索的特殊符号:

3.\< 和 \> 分别标注单词的开始与结尾。

 例如: 

 grep man * 会匹配 ‘Batman’、‘manic’、‘man’等, 

 grep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’, 

 grep '\<man\>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。 

 '^':指匹配的字符串在行首, 

 '$':指匹配的字符串在行尾,


本文转自 8yi少女的夢 51CTO博客,原文链接:http://blog.51cto.com/zhaoxiaohu/1963068,如需转载请自行联系原作者

相关文章
|
4月前
|
Linux
Linux命令(89)之xargs
Linux命令(89)之xargs
46 1
|
6月前
|
Linux
Linux命令之xargs
Linux命令 xargs
53 1
|
运维 Linux Shell
每天一个Linux命令(1):xargs
xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。
每天一个Linux命令(1):xargs