Linux查找文件6个高效工具(3)
locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库,CentOS7数据库的位置在/var/lib/locatedb,CentOS6数据库位置在/var/lib/mlocate/mlocate.db,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,默认情况下每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。 以CentOS7.5最小化安装为例,默认情况下,系统并没有集成该工具,需要手动安装它: 安装locate工具:
看到以下输出表明安装成功: Total download size: 113 k Installed size: 379 k Downloading packages: mlocate-0.26-8.el7.x86_64.rpm | 113 kB 00:00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : mlocate-0.26-8.el7.x86_64 1/1 Verifying : mlocate-0.26-8.el7.x86_64 1/1 Installed: mlocate.x86_64 0:0.26-8.el7 Complete! 更新数据库,即把系统中所有文件信息写入数据库/var/lib/mlocate/mlocate.db
查看以.txt结尾的文件:
输出结果: /root/abc.txt /root/cisco1.txt /root/cisco2.txt /root/compress.txt /root/cp1.txt /root/cp2.txt /root/cut.txt /root/cut2.txt /root/diff1.txt /root/diff2.txt /root/test.txt /root/zcwyou.txt 5. grep命令查找文本内容 5.1 根据内容查找 显示所有以d开头的文件中包含test的行。
显示在aa,bb,cc文件中匹配test的行。
显示所有包含每行字符串至少有5个连续小写字符的字符串的行
显示/usr/src目录下的文件(不含子目录)包含test的行
显示/usr/src目录下的文件(包含子目录)包含test的行
在zcwyou.txt文件中查找整个单词,而不是字符串的一部分(如匹配’test’,而不是’tester123’),
不区分大小写地搜索。默认情况区分大小写
查找关键字test,列出包括test的文件名,在当前目录找
查找关键字test,列出不包括test的文件名,在当前目录找
5.2 以递归的方式查找符合条件的文件 在/var/log及其子目录里,查找带有shutdown关键字的文件
5.3 反向查找 通过"-v"参数可以打印出不符合条件行的内容。 查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:
6. whereis命令 whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。 whereis命令的使用实例: 查看pwd命令程序所有的位置以及说明文件所在的位置
输出结果: pwd: /usr/bin/pwd /usr/share/man/man1/pwd.1.gz 7. which命令 which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
输出结果: /usr/bin/wget 8. type命令 查找wget程序的位置
输出结果: wget is /usr/bin/wget 查找du程序的位置,使用选项-p,相当于which命令
输出结果 /usr/bin/du 查找cd程序的位置,显示为builtin,即为Linux内置命令
输出结果表明,cd命令为系统集成命令。 cd is a shell builtin 查找ll程序的位置
输出结果表示,ll是ls -l的别名。 ll is aliased to `ls -l --color=auto'/ 本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接: https://www.linuxrumen.com/rmxx/176.html (编辑:ASP站长网) |