find: 1. 按文件名查找 find . -name "a*.txt" 注意双引号;
2. 按文件大小查找 find .-size [+/-]n[bcwkKG] +/-表示大于或小于多少,n代表数值,bcek表示单位。
3. 按时间先后来查找 find . -amin n : 访问时间(分钟) ;
find . -atime n : 访问时间(天);
find . -mmin n :内容修改时间(分钟)
find . -mtime n :内容修改时间(天)
find . -cmin n :属性变更时间 (分钟)
find . -ctime n :属性变更时间(天)
例子:find . -mmin 34, 第34分钟这一分钟时间段内修改的,
find . -mmin -34 最近34分钟以内修改的
find . -mmin +34 34分钟以前修改的
例子: find . -mtime -1 前24小时以内修改的
find . -mtime 1 前24-48小时期间修改的
find . -mtime +1 前48-72小时期间修改的
注意:两个不一样 find后面的.表示当前目录
4:目录层级 find . -mindepth n:目录最小搜索层级 比如:find . -mindepth 2 -name "a*.txt" 2级以后的
find . -maxdepth n:目录最大搜索层级 比如:find . -maxdepth 2 -name "a*.txt" 2级以前的
find . -maxdepth n - -mindepth n:从几到几
5:连接词 1.-a: and 比如:find . -name "a*" -a -type d
2.-o:or
3.!:not
6:文件类型:-type
7: :-exec -exec command {}\;意思是将find结果传递给command操作,{}是find查处的内容
比如:find . -size 0c -exec ls -l {}\;find . -size 0c -exec cp -r{}demo/\;
5.列出当前目录中所有以"t"开头的目录的详细内容
find . -name "t*" -type d -exec ls -l {} \;
33.查找home目录下文件名为memcache.pid的文件
find /home -name "memcache.pid"
34.查找当前目录下所有以pid结尾的文件
find . -name "*.pid"
35.查找以数字开头的所有pid文件
find . -name "[0-9]*.pid"
36.查找以数字为文件名的所有pid文件
find . -name "[0-9]*.pid" | grep '[0-9]\+.pid$'
37.用户目录下,查找权限为755的文件
find ~ -perm 755
38.当前目录,查找所有以产u_开头的,并且权限为644的文件
find . -name "u_*" -a -perm 644
39.查找当前目录下面的目录
find . -type d
40.找当前目录下面的非目录文件
find . ! -type d
41.查找当前目录中,没有归属的文件
find . -nouser
42.查找用户组为users,所属用户为zhangy的文件
find . -group users -user zhangy
43.查找文件大小大于1000000字符的文件
find . -size +1000000c
44.查找文件大小小于1000000字符的文件
find . -size -1000000c
45.查找文件大小等于1000000字符的文件
find . -size 1000000c
46.查找5天内修改过的文件
find . -mtime -5
47.查找5天前修改过的文件
find . -mtime +4
48.查找修改时间比一参考文件更接近现在的文件
find . -newer reference_file
49.显示当前目录下面所有大于1000000c的文件,列表显示
find . -size 1000000c -exec ls -l {} \;
内容查看 grep的用法:data是 随意命名的文件名
1.grep "home"
2.grep --color = auto "home"
3.alias grep ="grep --color = aoto"
grep "home"
4.grep "[0-9][0-9] " 两位数的查找 [匹配列表中的任意字符]
5.grep "[[:alnum:]]" 匹配字母和数字的字符
6.grep "[^[:alnum:]]" 不匹配字母和数字字符 [匹配列表之外的任意字符]
7.grep "abc$" 以abc为结尾的结束标记gr
8.grep "^abc" 以abc为开始的开始标记
9.grep “world\|say" 或者的意思
10.grep "ab\?c" b字符个数有0-1个。ac或者abc
11.grep "ab\*c" b字符个数是0-任意数
12.grep "ab\+c" b字符个数是1-任意数
13.grep "ab\{2\}c" b字符个数是两个
14.grep "ab\{2,\}c" b字符个数是2到多次
15.grep "\(ab\)\{2,\}c" ab字符个数是2到多次
16. grep"ab\{0,2\}c" b字符个数是0到2次
17.grep -v 显示不匹配的行
18.grep -E=egrep=
19. grep -vE:17+18
20 .grep "a.c" .匹配任意单个字符
注意:字符串匹配建议使用‘’单引号,
需要转义的字符:\? \+ \{\ } \(\) \|
\nth:引用第n个(pattern)
引号 ‘string’ :不论string中包含任意字符,统一视为普通字符。
引号 ”string“:不论string中包含任意字符,统一视为普通字符,对于、 $ ' 无效
·string·:反引号是将string当命令去执行
\string:命令的换行继续符号,对于特殊字符的屏蔽作用。
grep测试题:以下是data文件
60.grep
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false
DADddd:x:2:2:daemon:/sbin:/bin/false
mail:x:8:12:mail:/var/spool/mail:/bin/false
ftp:x:14:11:ftp:/home/ftp:/bin/false
&nobody:$:99:99:nobody:/:/bin/false
zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
http:x:33:33::/srv/http:/bin/false
dbus:x:81:81:System message bus:/:/bin/false
hal:x:82:82:HAL daemon:/:/bin/false
mysql:x:89:89::/var/lib/mysql:/bin/false
aaa:x:1001:1001::/home/aaa:/bin/bash
ba:x:1002:1002::/home/zhangy:/bin/bash
test:x:1003:1003::/home/test:/bin/bash
@zhangying:*:1004:1004::/home/test:/bin/bash
policykit:x:102:1005:Po
61.匹配含有root的行
grep 'root' data
62.匹配以root开头或者以zhang开头的行
grep -E '(^root)|(^zhang)' data
63.匹配以zhang开头,只含有字母的单词行
grep -E '^zhang[a-zA-Z]*$' data
64.不匹配以false结尾的行,并显示行号
grep -nvE 'false$' data
65.显示包含$号的行
grep '\$' data