一、find查找用法
find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
find默认的寻找路径为当前目录,并且默认的表达式为-print
1、列出某个路径下所有文件,包括子目录。
find/data-name “*”
2、查找在某个路径下所有包含“test abc”字符串的文件
find /data -name “*” | xargs grep “test abc”
3、-name:按照文件名查找
find/data-name “*.txt”4、-perm:按照权限查找文件find/data-perm 755 查找权限为755的文件5、-user和-nouserfind/data-user zhao -print 查找文件属主是zhao的文件find/data-nouser -print 查找文件属主已经被删除的文件6、-group和-nogroupfind/data-group test -print 查找文件群组是zhao的文件7、按照时间find/data-mtime -5 -print 文件更改时间在5天内的文件find/data-mtime +3 -print 文件更改时间在3天前的文件find/data-newer file1 -print 查找比文件file1新的文件8、按照类型查找find/data-type d -print 查找所有目录9、按照大小find/data-size +1000000C -print 查找文件大小大于1000000字节(1M)的文件10、查找位于本文件系统里面的文件find/data-name “*.txt” -mount -print-exec,-ok:find命令对于匹配文件执行该参数所给出shell命令,相应命令形式为: ‘command’ {} \;-ok 在执行命令前要确认find/data-type f -exec ls -l {} \;find/data-name “*.log” -mtime +5 -ok rm {} \;find/data-name core -exec rm {} \;
注意:-exec在{}和\之间必须要有空格,同时\;之间不能有空格,否则会报上面的错。
使用-x dev参数防止find搜索其他分区find . -size 0 -exec rm {} \;删除尺寸为0的文件11. xargs与-exec功能类似find/data-type f |xargs grep -i “Mary”在所有文件中检索字符串Maryls *~ |xargs rm -rf删除所有以~结尾的文件
二、grep用法
Usage: grep [OPTION]... PATTERN [FILE]..
Regexp selection and interpretation:
-E, --extended-regexp PATTERN is an extended regular expression (ERE)
-F, --fixed-strings PATTERN is a set of newline-separated fixed strings
-G, --basic-regexp PATTERN is a basic regular expression (BRE)
-P, --perl-regexpPATTERN is a Perl regular expression
-e, --regexp=PATTERN use PATTERN for matching
-f, --file=FILEobtain PATTERN from FILE
-i, --ignore-caseignore case distinctions
-w, --word-regexpforce PATTERN to match only whole words
-x, --line-regexpforce PATTERN to match only whole lines
-z, --null-dataa data line ends in 0 byte, not newline
Miscellaneous:
-s, --no-messagessuppress error messages
-v, --invert-match select non-matching lines
-V, --version print version information and exit
--help display this help and exit
--mmap ignored for backwards compatibility
Output control:
-m, --max-count=NUM stop after NUM matches
-b, --byte-offsetprint the byte offset with output lines
-n, --line-numberprint line number with output lines
--line-buffered flush output on every line
-H, --with-filename print the filename for each match
-h, --no-filenamesuppress the prefixing filename on output
--label=LABELprint LABEL as filename for standard input
-o, --only-matching show only the part of a line matching PATTERN
-q, --quiet, --silent suppress all normal output
--binary-files=TYPE assume that binary files are TYPE;
TYPE is `binary', `text', or `without-match'
-a, --text equivalent to --binary-files=text
-I equivalent to --binary-files=without-match
-d, --directories=ACTION how to handle directories;
ACTION is `read', `recurse', or `skip'
-D, --devices=ACTION how to handle devices, FIFOs and sockets;
ACTION is `read' or `skip'
-R, -r, --recursive equivalent to --directories=recurse
--include=FILE_PATTERN search only files that match FILE_PATTERN
--exclude=FILE_PATTERN skip files and directories matching FILE_PATTERN
--exclude-from=FILE skip files matching any file pattern from FILE
--exclude-dir=PATTERN directories that match PATTERN will be skipped.
-L, --files-without-match print only names of FILEs containing no match
-l, --files-with-matches print only names of FILEs containing matches
-c, --count print only a count of matching lines per FILE
-T, --initial-tabmake tabs line up (if needed)
-Z, --null print 0 byte after FILE name
grep与正则表达式同用grep “^[^abc]” *.f 提取行首不是abc的行grep “[0-9]\{3\}[8]” *.f 提取类似xxx8的行,x表示任意数字grep “a\{2\}” *.f 显示a至少出现两次的行,注意grep是以行处理单位的grep -n “^$” file 列出空行的行号-E参数,可以使用”与”和”或”模式grep -E “abc | def” *.f 显示包含abc或者def的行ex:ls -l | grep “^$” 显示目录ls -l | grep “^d” 显示文件ls -l | grep “^d..x..x..x” 显示特定权限的目录
如果觉得《linux查找出全部doc文件 linux 查找出包含某个字符串的所有文件的方法详解》对你有帮助,请点赞、收藏,并留下你的观点哦!