为什么要把这两个命令放到一起了?没有为什么。当你不用一个命令的时候就会慢慢遗忘它,所以我刚好用到这两个命令,就总结一下。
一、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,如需转载请自行联系原作者