文件搜索命令find
'find [搜索范围] [搜索条件]'
搜索文件
find / -name install.log
#避免大范围搜索,会非常消耗系统资源
#find是在系统当中搜索符合条件的文件名。
如果需要匹配,使用通配符匹配,通配符是完全匹配
'find /root -iname install.log'
不区分大小写
'find /root -user root'
按照所有者搜索
'find /root -nouser'
查找没有所有者的文件
通配符
'*' 匹配任意内容
'?' 匹配任意一个字符
'[]' 匹配任意一个中括号内的字符
>> find /root -name "ab[cd]"
按时间查找
'find /var/log/ -mtime +10'
#查找10天前修改的文件
'-10' 10天内修改的文件
'10' 10天当前修改的文件
'+10' 10天前修改的文件
'atime' 文件访问时间
'ctime' 改变文件属性
'mtime'修改文件内容
find /etc -size +20k -a -size -50k
#查找/etc/目录下,大于20KB且小于50KB的文件
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个即可
find /etc -size +20k -a -size 50k -exec ls lh {} ;
#exec ls lh {} ,使用ls lh来处理前面查找出来的文件
*)只要出现-exec,必须使用{} 来结尾
-exec command {}
*) command命令必须能对文件进行操作处理
例如
find /etc -size +20k -a -size 50k -exec rm -rf {} ;
按文件大小搜索
'find . -size 25k'
#查找当前目录下大小是25K的文件
'-25k' 小于25K的文件
'25K' 等于25K的文件
'+25K' 大于25K的文件
find . inum 262422
查找节点i是262422的文件
搜索字符串命令GREP
grep [选项] 字符串 文件名
在文件当中匹配符合条件的字符串
'-i' 忽略大小写
'-v' 排除指定字符串
find和grep的命令区别
'find'
在系统搜索符合条件的文件名,如果需要匹配使用通配符匹配,通配符完全匹配
'grep'
在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式匹配,正则表达式时包含匹配
文件搜索命令locate
'locate 文件名'
只能搜索文件名
在后台数据库中按文件名搜索,搜索速度更快
/var/lib/mlocate
#locate命令所搜索的后台数据库
locate搜索的是/var/lib/mlocate文件数据库(默认更新频率是每天更新一次)
updatedb
更新数据库(强制更新/var/lib/mlocate文件数据库)
文件搜索配置文件
'/etc/updatedb.conf' 配置文件
'PRUNE_BIND_MOUNTS=yes'
开启搜索限制
'PRUNEFS='
搜索时,不搜索的文件系统
'PRUNENAMES='
搜索时,不搜索的文件类型
'PRUNEPATHS='
搜索时,不搜索的路径
PRUNE_BIND_MOUNTS = "yes"
PRUNEFS ="...."
PRUNENAMES = ".git .hg .svn"
PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp"
命令搜索命令which
'which command'
可以看到命令所在的位置,还能看到命令的别名
[root@ssgao1987 /]# which ls
alias ls='ls --color=auto'
/bin/ls
192:monitor xiaoxiao$ which mv
/bin/mv
192:monitor xiaoxiao$ which mvn
/Users/xiaoxiao/Documents/software/maven/apache-maven-3.2.2/bin/mvn
192:monitor xiaoxiao$ which java
/usr/bin/java
命令搜索命令whereis
'whereis command'
说明:找出指定程序的可执行文件,源代码文件以及manpage的路径。
whereis 只会在标准的Linux目录中进行搜索。
-b 只搜索可执行文件
-m 只搜索manpage
-s 只搜索源代码文件
-B directory 更改或限定搜索可执行的文件的目录
-M directory 更改或限定搜索manpage的目录
whereis和which
1) 找不到cd命令
应为cd命令是shell自带的命令