LINUX下查文件或字符串的方法
第一个命令:find(我比较常用)
功能说明:
find指令用于查符合条件的文件。任何位于参数之前的字符串都将被视为欲查的目录。
举 例:
我们要在/usr目录及子目录下查“intelism”文件:
find /usr -name intelism -print
我们要在/usr目录及子目录下查文件名包含“intelism”关键字的文件:
find /usr -print |grep intelism
若不填写/usr的话就是在当前路径及子目录下查
语 法:
find [目录...][-amin <分钟>][-anewer <参考文件或目录>][-atime <24小时数>][-cmin <分钟>][-cnewer <参考文件或目录>][-ctime <24小时数>][-daystart][-depyh][-empty][-exec <执行指令>][-false][-fls <列表文件>][-follow][-fprint <列表文件>][-fprint0 <列表文件>][-fprintf <列表文件><输出格式>][-fstype <文件系统类型>][-gid <组识别码>][-group <组名称>][-help][-ilname <范本样式>][-iname <范本样式>][-inum <inode编号>][-ipath <范本样式>][-iregex <范本样式>][-links <连接数目>][-lname <范本样式>][-ls][-maxdepth <目录层级>][-mindepth <目录层级>][-mmin <分钟>][-mount][-mtime <24小时数>][-name <范本样式>][-newer <参考文件或目录>][-nogroup][noleaf] [-nouser][-ok <执行指令>][-path <范本样式>][-perm <权限数值>][-print][-print0][-printf <输出格式>][-prune][-regex <范本样式>][-size <文件大小>][-true][-type <文件类型>][-uid <用户识别码>][-used <日数>][-user <拥有者名称>][-version][-xdev][-xtype <文件类型>]
参 数:
-amin<分钟> 查在指定时间曾被存取过的文件或目录,单位以分钟计算。
-anewer<参考文件或目录> 查其存取时间较指定文件或目录的存取时间更接近现在的文件或目录。
-atime<24小时数> 查在指定时间曾被存取过的文件或目录,单位以24小时计算。
-cmin<分钟> 查在指定时间之时被更改的文件或目录。
-cnewer<参考文件或目录> 查其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。
-ctime<24小时数> 查在指定时间之时被更改的文件或目录,单位以24小时计算。
-daystart 从本日开始计算时间。
-depth 从指定目录下最深层的子目录开始查。
-expty 寻文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录。
-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编号> 查符合指定的inode编号的文件或目录。
-ipath<范本样式> 此参数的效果和指定"-ipath"参数类似,但忽略字符大小写的差别。
-iregex<范本样式> 此参数的效果和指定"-regexe"参数类似,但忽略字符大小写的差别。
-links<连接数目> 查符合指定的硬连接数目的文件或目录。
-iname<范本样式> 指定字符串作为寻符号连接的范本样式。
-ls 假设find指令的回传值为True,就将文件或目录名称列出到标准输出。
-maxdepth<目录层级> 设置最大目录层级。
-mindepth<目录层级> 设置最小目录层级。
-mmin<分钟> 查在指定时间曾被更改过的文件或目录,单位以分钟计算。
-mount 此参数的效果和指定"-xdev"相同。
-mtime<24小时数> 查在指定时间曾被更改过的文件或目录,单位以24小时计算。
-name<范本样式> 指定字符串作为寻文件或目录的范本样式。
-newer<参考文件或目录> 查其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。
-nogroup 出不属于本地主机组识别码的文件或目录。
-noleaf 不去考虑目录至少需拥有两个硬连接存在。
-nouser 出不属于本地主机用户识别码的文件或目录。 find查命令的使用
-ok<执行指令> 此参数的效果和指定"-exec"参数类似,但在执行指令之前会先询问用户,若回答"y"或"Y",则放弃执行指令。
-path<范本样式> 指定字符串作为寻目录的范本样式。
-perm<权限数值> 查符合指定的权限数值的文件或目录。
-print 假设find指令的回传值为True,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称之前皆有"./"字符串。
-print0 假设find指令的回传值为True,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行。
-printf<输出格式> 假设find指令的回传值为True,就将文件或目录名称列出到标准输出。格式可以自行指定。
-prune 不寻字符串作为寻文件或目录的范本样式。
-regex<范本样式> 指定字符串作为寻文件或目录的范本样式。
-size<文件大小> 查符合指定的文件大小的文件。
-true 将find指令的回传值皆设为True。
-typ<文件类型> 只寻符合指定的文件类型的文件。
-uid<用户识别码> 查符合指定的用户识别码的文件或目录。
-used<日数> 查文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算。
-user<拥有者名称> 查符合指定的拥有者名称的文件或目录。
-version或--version 显示版本信息。
-xdev 将范围局限在先行的文件系统中。
-xtype<文件类型> 此参数的效果和指定"-type"参数类似,差别在于它针对符号连接检查。
第二个命令:grep,egrep,fgrep(我比较常用)
功能说明:
grep指令用于查内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。
举 例:
然后是查文件中的字符串,一般我们都用grep,但egrep支持全部的正则表达式。
我们要查看“./intelism”文件里的字符"test"
grep -n "test" ./intelism
我们要查看所有以A或者a开头的字符串那么:
grep -n -i '\<a' ./intelism
我们要看“~/intel/”文件下有没有SIZE为0的文件:
ls -l ~/intel/ | grep “0”| cut -f10 -d' '
當然,进入所需路径,越远离根目录越好,否则以下命令耗时可能很长。
我们要查哪些文件中包含“you_string”字符串:
grep -anR "you_string" *
这样是递归每个子目录,如果不想递归,把-R去掉,“*”表示当前目录及子目录,当然也可以指定目录.
注意,这个命令不是很快就能完成的,有点耐心!
语 法:
grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
参 数:
-a或--text 不要忽略二进制的数据。
-A<显示列数>或--after-context=<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之后的内容。
-b或--byte-offset 在显示符合范本样式的那一列之前,标示出该列第一个字符的位编号。
-B<显示列数>或--before-context=<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前的内容。
-c或--count 计算符合范本样式的列数。
-C<显示列数>或--context=<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作>或--directories=<进行动作> 当指定要查的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论