A. linux命令查找文件里的信息
Linux查找文件内容的常用命令方法。 从文件内容查找匹配指定字符串的行:$ grep "被查找的字符串" 文件名例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件grep "thermcontact" */*.in从文件内容查找与正则表达式匹配的行:$ grep –e “正则表达式” 文件名查找时不区分大小写:$ grep –i "被查找的字符串" 文件名查找匹配的行数:$ grep -c "被查找的字符串" 文件名从文件内容查找不匹配指定字符串的行:$ grep –v "被查找的字符串" 文件名从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行find / -type f -name "*.log" | xargs grep "ERROR"例子:从当前目录开始查找所有扩展名为.in的文本文件,并找出包含”thermcontact”的行find . -name "*.in" | xargs grep "thermcontact"
B. linux查找文件内容命令
搜索、查找文件当中的内容,一般最常用的是grep命令,另外还有egrep, vi命令也能搜索文件里面内容
1:搜索某个文件里面是否包含字符串,使用grep "search content" filename1, 例如
$ grep ORA alert_gsp.log
$ grep "ORA" alert_gsp.log
例如我们需要搜索、查找utlspadv.sql文件中包含ORA的字符内容
[[email protected] admin]$ grep "ORA" utlspadv.sql– ORA-XXXXX: Monitoring already started. If for example you want– ORA-20111:– ORA-20112:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'– 0 |<PS> =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 0 0 2 99.3% 0% 0.7% ""– |<PR> DBS1.REGRESS.RDBMS.DEV.US.ORACLE.COM=> 100% 0% 0% "" |<PR> …– =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 92 7 99.3% 0% 0.7% "" |<PR> …– |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 2 0 0 0.E+00– |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM– ORA-20111:– ORA-20112:– ORA-20100:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'[[email protected] admin]$
如上所示,这个是一个模糊匹配,其实我是想要查看ORA这类错误,那么我要过滤掉哪一些没有用的,搜索的内容修改一下即可(当然也可以使用特殊参数,后面有讲述),如下所示。
[[email protected] admin]$ grep "ORA-" utlspadv.sql– ORA-XXXXX: Monitoring already started. If for example you want– ORA-20111:– ORA-20112:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'– ORA-20111:– ORA-20112:– ORA-20100:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'[[email protected] admin]$
7:有些场景,我们并不知道文件类型、或那些文件包含有我们需要搜索的字符串,那么可以递归搜索某个目录以及子目录下的所有文件
[[email protected] ~]$ grep -r "v$temp_space_header" /u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace view v_$temp_space_header as select * from v$temp_space_header;
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace public synonym v$temp_space_header for v_$temp_space_header;
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace view gv_$temp_space_header as select * from gv$temp_space_header;
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace public synonym gv$temp_space_header
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql: FROM gv$temp_space_header
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql:drop public synonym v$temp_space_header;
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql:drop public synonym gv$temp_space_header;
[[email protected] ~]$
8:如果我们只想获取那些文件包含搜索的内容,那么可以使用下命令
[[email protected] ~]$ grep -H -r "v$temp_space_header" /u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql
[[email protected] ~]$ grep -H -r "v$temp_space_header" /u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1 | uniq
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql
[[email protected] ~]$
9:如果只想获取和整个搜索字符匹配的内容,那么可以使用参数w
你可以对比一下两者的区别
[[email protected] admin]$ grep -w "ORA" utlspadv.sql– ORA-XXXXX: Monitoring already started. If for example you want– ORA-20111:– ORA-20112:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'– ORA-20111:– ORA-20112:– ORA-20100:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'[[email protected] admin]$ grep "ORA" utlspadv.sql– ORA-XXXXX: Monitoring already started. If for example you want– ORA-20111:– ORA-20112:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'– 0 |<PS> =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 0 0 2 99.3% 0% 0.7% ""– |<PR> DBS1.REGRESS.RDBMS.DEV.US.ORACLE.COM=> 100% 0% 0% "" |<PR> …– =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 92 7 99.3% 0% 0.7% "" |<PR> …– |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 2 0 0 0.E+00– |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM– ORA-20111:– ORA-20112:– ORA-20100:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'[[email protected] admin]$
10: grep命令结合find命令搜索
[[email protected] admin]$ find . -name '*.sql' -exec grep -i 'v$temp_space_header' {} ; -printcreate or replace view v_$temp_space_header as select * from v$temp_space_header;create or replace public synonym v$temp_space_header for v_$temp_space_header;create or replace view gv_$temp_space_header as select * from gv$temp_space_header;create or replace public synonym gv$temp_space_headerFROM gv$temp_space_header./catspace.sqldrop public synonym v$temp_space_header;drop public synonym gv$temp_space_header;./catspacd.sql[[email protected] admin]$
11: egrep -w -R 'word1|word2' ~/klbtmp
12: vi命令其实也能搜索文件里面的内容,只不过没有grep命令功能那么方便、强大。
C. 在Linux下面的某一个文件的查找命令
可以使用find命令。例如:find test . 就是在当前目录下查找test文件
find详细描述:命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。语法:find(选项)(参数)
选项:
-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;-anewer<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;-cmin<分钟>:查找在指定时间之时被更改过的文件或目录;-cnewer<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;-ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;-daystart:从本日开始计算时间;-depth:从指定目录下最深层的子目录开始查找;-expty:寻找文件大小为0Byte的文件,或目录下没有任何子目录或文件的空目录;-exec<执行指令>:假设find指令的回传值为True,就执行该指令;-false:将find指令的回传值皆设为False;-fls<列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;-follow:排除符号连接;-fprint<列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;-fprint0<列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;-fprintf<列表文件><输出格式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;-fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录;-gid<群组识别码>:查找符合指定之群组识别码的文件或目录;-group<群组名称>:查找符合指定之群组名称的文件或目录;-help或——help:在线帮助;-ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;-inum:查找符合指定的inode编号的文件或目录;-ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;-iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;-links<连接数目>:查找符合指定的硬连接数目的文件或目录;-iname<范本样式>:指定字符串作为寻找符号连接的范本样式;-ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;-maxdepth<目录层级>:设置最大目录层级;-mindepth<目录层级>:设置最小目录层级;-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;-mount:此参数的效果和指定“-xdev”相同;-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;-nogroup:找出不属于本地主机群组识别码的文件或目录;-noleaf:不去考虑目录至少需拥有两个硬连接存在;-nouser:找出不属于本地主机用户识别码的文件或目录;-ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;-path<范本样式>:指定字符串作为寻找目录的范本样式;-perm<权限数值>:查找符合指定的权限数值的文件或目录;-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;-print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;-printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;-prune:不寻找字符串作为寻找文件或目录的范本样式;-regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;-size<文件大小>:查找符合指定的文件大小的文件;-true:将find指令的回传值皆设为True;-typ<文件类型>:只寻找符合指定的文件类型的文件;-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;-used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;-version或——version:显示版本信息;-xdev:将范围局限在先行的文件系统中;-xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。
参数:起始目录:查找文件的起始目录。
D. linux下查找文件用什么命令行
ind / -name btools或者先执行updatedb,然后locate btools
E. 怎么在Linux中查找某个文件
在 Linux 中查找文件有两种方法。一种是使用 find 命令,另外一种是使用 locate 命令。
1、Find 命令
使用 Linux find 命令可以用不同的搜索标准如名字、类型、所属人、大小等来搜索目录树。基本语法如下:
#findpathexpressionsearch-term
下面是使用 find 命令根据文件名来查找特定文件的一个例子:
#find-nametest.file
命令会搜索整个目录树来查找名为 test.file 的文件,并且会提供其存放位置。你可以使用你 Linux 上一个存在的文件名来尝试一下。
find 命令有时会花费几分钟来查找整个目录树,尤其是如果系统中有很多文件和目录的话。要显著减少时间,你可以指定搜索的目录。比如,如果你知道 /var 中存在 test.file,那就没有必要搜索其它目录。这样,你可以使用下面的命令:
#find/var-nametest.file
find 还可以根据时间、大小、所属人、权限等选项搜索文件。要了解更多关于这些选项的信息,你可以使用查看** Linux find 命令**的手册。
#manfind
2、locate 命令
要在Linux中使用locate命令,首先需要安装它。
如果你正在使用 Ubuntu,运行下面的命令来安装 locate:
#apt-getupdate#apt-getinstallmlocate
如果你使用的是 CentOS ,运行下面的命令来安装 locate:
#yuminstallmlocate
locate 是一种比 find 更快的方式,因为它在数据库中查找文件。要更新搜索数据库,运行下面的命令:
#updatedb
使用 locate 查找文件的语法:
#locatetest.file
就像 find 命令一样,locate 也有很多选项来过滤输出。要了解更多你可以查看Linux Locate 命令的手册。
#manlocate
F. Linux中如何查找文件
查找文件使用find命令,命令格式:find 路径 -name 文件名例如要在整个根目录下查找test.txt文件,内find / -name test.txt,需要注意的是必须容对要查找的那个目录有可读权限以上就是关于Linux中查找文件的内容,学习软件测试也需要学习Linux,如果你想学,可以看黑马程序员视频库的视频哦!
G. Linux系统中怎么搜索文件命令大全
你可以来使用 find 命令,举例来说:源最基本的功能例如:在整个系统中搜索名为 *.c 源程序,你可以在超级用户 # 状态下,使用 find 命令。见下面。#find / -name "*.c" -print <cr>#其中:<cr>代表回车键。/ 代表从根目录开始进行搜索。-print 代表将搜索到的结果显示在屏幕上。执行完该命令后,该命令就会将整个系统中所有的 C 语言源程序所在的子目录显示在屏幕上。当然了,对于 find 命令而言,再配上Linux 强大的SHELL编程功能,你还可以使用SHELL的各种过滤符号,挑选出符合你的各种条件的文件名。这个就要靠你自己去熟悉SHELL编程了。
H. linux下怎么使用命令搜索指定文件
你好,方法如下:Linux下查找文件的命令有两个;locate 和 find首先说下locate,locate这个命令是对其生成的数据库进行遍历(生成数据库的命令:updatedb),这一特性决定了用locate查找文件速度很快,但是locate命令只能对文件进行模糊匹配,在精确度上来说差了点,简单介绍下它的两个选项: #locate -i //查找文件的时候不区分大小写 比如:locate –i passwd -n //只显示查找结果的前N行 比如:locate -n 5 passwd下面重点说下find,find在不指定查找目录的情况下是对整个系统进行遍历查找使用格式 : find [指定查找目录] [查找规则] [查找完后执行的action][指定查找目录]例如:这里要注意的是目录之间要用空格分开
I. linux下查找文件的命令
find就可以啊,你不指定路径他就查找所有满足条件的文件find -name '你的文件名'
未经允许不得转载:山九号 » linux查找文件的命令|Linux中如何查找文件