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$]