演示环境
Linuxversion3.10.0-1160.36.2.el7.x86_64(mockbuild@kbuilder.bsys.centos.org)(gccversion4.8.520150623(RedHat4.8.5-44)(GCC))#1SMPWedJul2111:57:15UTC2021
find用法
用法:find[-H][-L][-P][-Olevel][-Dhelp|tree|search|stat|rates|opt|exec][path...][expression]默认路径为当前目录;默认表达式为-print表达式可能由下列成份组成:操作符、选项、测试表达式以及动作:操作符(优先级递减;未做任何指定时默认使用-and):(EXPR)!EXPR-notEXPREXPR1-aEXPR2EXPR1-andEXPR2EXPR1-oEXPR2EXPR1-orEXPR2EXPR1,EXPR2positionaloptions(alwaystrue):-daystart-follow-regextypenormaloptions(alwaystrue,specifiedbeforeotherexpressions):-depth--help-maxdepthLEVELS-mindepthLEVELS-mount-noleaf--version-xautofs-xdev-ignore_readdir_race-noignore_readdir_race比较测试(N可以是+N或-N或N):-aminN-anewerFILE-atimeN-cminN-cnewer文件-ctimeN-empty-false-fstype类型-gidN-group名称-ilname匹配模式-iname匹配模式-inumN-ipath匹配模式-iregex匹配模式-linksN-lname匹配模式-mminN-mtimeN-name匹配模式-newer文件-nouser-nogroup-pathPATTERN-perm[-/]MODE-regexPATTERN-readable-writable-executable-wholenamePATTERN-sizeN[bcwkMG]-true-type[bcdpflsD]-uidN-usedN-userNAME-xtype[bcdpfls]-context文本操作:-delete-print0-printf格式-fprintf文件格式-print-fprint0文件-fprint文件-ls-fls文件-prune-quit-exec命令;-exec命令{}+-ok命令;-execdir命令;-execdir命令{}+-okdir命令;通过findutils错误报告页http://savannah.gnu.org/报告错误及跟踪修定过程。如果您无法浏览网页,请发电子邮件至<bug-findutils@gnu.org>。
使用find命令实现搜索
find./-iname"*.txt"
随便找个目录演示一下:
-iname是不区分大小写。-name要区分大小写。*是通配符就不多讲了,也可替换成正则表达式。find./(等价于find.)命令,可以把当前文件夹下的所有内容全部列出来
grep用法
用法:grep[选项]...PATTERN[FILE]...在每个FILE或是标准输入中查找PATTERN。默认的PATTERN是一个基本正则表达式(缩写为BRE)。例如:grep-i'helloworld'menu.hmain.c正则表达式选择与解释:-E,--extended-regexpPATTERN是一个可扩展的正则表达式(缩写为ERE)-F,--fixed-stringsPATTERN是一组由断行符分隔的定长字符串。-G,--basic-regexpPATTERN是一个基本正则表达式(缩写为BRE)-P,--perl-regexpPATTERN是一个Perl正则表达式-e,--regexp=PATTERN用PATTERN来进行匹配操作-f,--file=FILE从FILE中取得PATTERN-i,--ignore-case忽略大小写-w,--word-regexp强制PATTERN仅完全匹配字词-x,--line-regexp强制PATTERN仅完全匹配一行-z,--null-data一个0字节的数据行,但不是空行Miscellaneous:-s,--no-messagessuppresserrormessages-v,--invert-matchselectnon-matchinglines-V,--versiondisplayversioninformationandexit--helpdisplaythishelptextandexit输出控制:-m,--max-count=NUMNUM次匹配后停止-b,--byte-offset输出的同时打印字节偏移-n,--line-number输出的同时打印行号--line-buffered每行输出清空-H,--with-filename为每一匹配项打印文件名-h,--no-filename输出时不显示文件名前缀--label=LABEL将LABEL作为标准输入文件名前缀-o,--only-matchingshowonlythepartofalinematchingPATTERN-q,--quiet,--silentsuppressallnormaloutput--binary-files=TYPEassumethatbinaryfilesareTYPE;TYPEis'binary','text',or'without-match'-a,--textequivalentto--binary-files=text-Iequivalentto--binary-files=without-match-d,--directories=ACTIONhowtohandledirectories;ACTIONis'read','recurse',or'skip'-D,--devices=ACTIONhowtohandledevices,FIFOsandsockets;ACTIONis'read'or'skip'-r,--recursivelike--directories=recurse-R,--dereference-recursivelikewise,butfollowallsymlinks--include=FILE_PATTERNsearchonlyfilesthatmatchFILE_PATTERN--exclude=FILE_PATTERNskipfilesanddirectoriesmatchingFILE_PATTERN--exclude-from=FILEskipfilesmatchinganyfilepatternfromFILE--exclude-dir=PATTERNdirectoriesthatmatchPATTERNwillbeskipped.-L,--files-without-matchprintonlynamesofFILEscontainingnomatch-l,--files-with-matchesprintonlynamesofFILEscontainingmatches-c,--countprintonlyacountofmatchinglinesperFILE-T,--initial-tabmaketabslineup(ifneeded)-Z,--nullprint0byteafterFILEname文件控制:-B,--before-context=NUM打印以文本起始的NUM行-A,--after-context=NUM打印以文本结尾的NUM行-C,--context=NUM打印输出文本NUM行-NUMsameas--context=NUM--group-separator=SEPuseSEPasagroupseparator--no-group-separatoruseemptystringasagroupseparator--color[=WHEN],--colour[=WHEN]usemarkerstohighlightthematchingstrings;WHENis'always','never',or'auto'-U,--binarydonotstripCRcharactersatEOL(MSDOS/Windows)-u,--unix-byte-offsetsreportoffsetsasifCRswerenotthere(MSDOS/Windows)‘egrep’即‘grep-E’。‘fgrep’即‘grep-F’。直接使用‘egrep’或是‘fgrep’均已不可行了。若FILE为-,将读取标准输入。不带FILE,读取当前目录,除非命令行中指定了-r选项。如果少于两个FILE参数,就要默认使用-h参数。如果有任意行被匹配,那退出状态为0,否则为1;如果有错误产生,且未指定-q参数,那退出状态为2。请将错误报告给:bug-grep@gnu.orgGNUGrep主页:<http://www.gnu.org/software/grep/>GNU软件的通用帮助:<http://www.gnu.org/gethelp/>
find+grep
grep命令可以根据关键词进行过滤
find./|greptxt
这个命令可以把当前目录里面的所有文件名中包含txt的全部列出来。另外,我们还可以组合多个关键词进行进一步的过滤,只要在后面接着输入|grep关键词即可。
find./|greptxt|greplog
-v这个是取反功能
find./|greptxt-v
简单做个笔记,以后实际用到再补充。以上用法都是看网上的人使用的多的。