1.find命令
find功能极为强大,用法也变化多端。 在linux中你可以在控制台中使用 man find 进行查询。
例1:查找/usr/share/doc 目录下所有后缀是txt的文件:
find /usr/share/doc -name *.txt
例2:在/tmp目录下查找所有文件名为core的文件,并将其全部删除:
find /tmp -name core | xargs /bin/rm -f
例3:在你的目录中查找所有24小时内修改过的文件:
find $HOME -mtime 0
例4:查找当前目录下所有664权限的文件:
find . -perm 664
2.locate命令
和find命令不同的是,locate命令在查找文件时,实际上是到一个数据库中区查找,而且只能按照文件名来查找。
这个数据库由updatedb命令生成的。在/etc/cron.daily 下面有个文件叫做 mlocate,每天运行一次,更新数据库。
3.grep命令
global search regular expression andprint out theline -- 全面搜索正则表达式并把它打印出来,是一种强大的搜索工具。
1.从单个文件中查询指定的文字
grep "something" document
2.在多个文件中检索文字
grep "something" FILE_PATTERN
grep "something" file_*
3.用grep -i 进行大小写无关的搜索
grep -i "something" document
4.使用正则表达式进行搜索
grep "REGEX" filename
5.如果你能有效地利用正则表达式,这是很有用的。
在下面的例子中,搜索使用lines开始,以empty结束的字串,如搜索lines和empty结束的字符串,并且忽略大小写。
grep -i "lines.*empty" document
正则表达式遵循的几个重复操作
? 最多匹配一次
*匹配零次或者任意多次
+匹配一次以上
{n}匹配n次
{n,}最少匹配n次
{,m}最多匹配m次
{n,m}匹配n到m次
6.使用grep -w 搜索整个词,而不是词中的部分字串。
下列搜索"is"。如果不加-w选项,将显示"is","his","this"等所有包含"is"的行。
grep -iw "is" filename
7.使用grep -r 递归搜索全部的文件
grep -r "ramesh" *
8.使用grep -v 进行不匹配
可以使用-v 选项显示不匹配搜索字符串的行。下列显示filename中不包含的"go"的行
grep -v "go" filename
9.用grep -n在输出时显示行号
grep -n "go" filename