linux亦步亦趋(14)文件管理locate、grep

linux系统中除了find命令外还有一个命令可以用来查找文件,且速度比较快。

locate命令:

该命令是在一个文件数据库中查找文件,因此速度非常快。例子如下:格式  locate pattern

[root@localhost test]# locate test.sh
/home/test/test.sh
[root@localhost test]#

但是该命令也有个缺点就是,会出现查不出来的情况比如下面:

[root@localhost test]# ls -l
总计 4
-rwxrwxrwx 1 test test 4 07-22 23:56 test.sh
[root@localhost test]# touch test1.sh
[root@localhost test]# locate test1.sh
[root@localhost test]#

我们发现刚创建的文件没有被查到,这是因为数据库中还没有收藏这个文件的信息。

要收藏文件需要另一个命令,即updatedb

updatedb命令:

该命令用来更新文件库,使用方法如下:

[root@localhost test]# locate test1.sh
[root@localhost test]# updatedb
[root@localhost test]# locate test1.sh
/home/test/test1.sh
[root@localhost test]#

我们可以看见执行了updatedb之后,test1.sh文件就可以通过locate来查找了。linux操作系统会定期执行该命令。

我们学习了文件查找的命令了,那怎么查找文件里面的内容呢,我们可以使用grep命令;

grep命令:

该命令用于显示文件中匹配格式行。格式 grep patter files;

举例如下:

[root@localhost test]# cat test.sh
aaa
bbb
ccc
ddd
eee
fff
ddd
ccc
[root@localhost test]# grep a test.sh
aaa
[root@localhost test]# grep d test.sh
ddd
ddd
[root@localhost test]#
##我们可以看到它显示了文件中有关行,注意grep可以同时操作多个文件。如下:
[root@localhost test]# grep aaa test.sh test1.sh
test.sh:aaa
test1.sh:aaa
[root@localhost test]#

重要选项 -v  不显示匹配的行,grep -v pattern  file

[root@localhost test]# grep -v "^#" services
xuelianbo
2014年 07月 28日 星期一 19:23:01 CST
insert text file
[root@localhost test]#

初识管道:

管道顾名思义起到连接,传递的作用,linux的管道使用“|” 里实现。比如ls后的结果我们需要进一步处理,比如我们要过滤,则可以使用grep命令.

实例如下:

[osstest:/oradata/olcomtest$]ls -l
total 208
drwxr-x---   6 osstest  dba            4096 Jan 26 2013  JRC
-rw-r--r--   1 osstest  dba           37950 Jul 22 2008  LICENSE
-rw-r--r--   1 osstest  dba             556 Jul 22 2008  NOTICE
-rw-r--r--   1 osstest  dba            7317 Jul 22 2008  RELEASE-NOTES
-rw-r--r--   1 osstest  dba            6587 Jul 22 2008  RUNNING.txt
drwxr-x---   6 osstest  dba             256 Dec 11 2012  ZXHL_800
drwxr-xr-x   5 osstest  dba           16384 Feb 25 2013  bin
drwxr-xr-x   2 osstest  dba            4096 Mar 22 2013  conf
drwxr-xr-x   2 osstest  dba            4096 Jul 22 2008  lib
drwxr-xr-x   2 osstest  dba            4096 Mar 25 2013  logs
drwxr-xr-x  42 osstest  dba            4096 Mar 25 2013  temp
drwxr-xr-x   8 osstest  dba            4096 Dec 21 2012  webapps
drwxr-xr-x   3 osstest  dba             256 Dec 11 2012  work
[osstest:/oradata/olcomtest$]ls -l | grep bin
drwxr-xr-x   5 osstest  dba           16384 Feb 25 2013  bin
[osstest:/oradata/olcomtest$]