语法:find [搜索范围] [匹配条件]
功能:文件搜索
例1:$find /etc -name init
在目录/etc中查找文件init,为精准搜索(-iname不区分文件名大小写)
$find /etc -name *init*(利用通配符*来实现模糊搜索,文件名包含init)
$find /etc -name *init(利用通配符*来实现模糊搜索,文件名尾部为init)
$find /etc -name init???(利用通配符*来实现模糊搜索,文件名头部为init,尾部为3个字符)
例2:$find / -size +204800
在根目录下查找大于100MB的文件(+n大于;-n小于;n等于)
ps:linux中单位为数据块,一个数据块为512字节,也就是0.5KB
100MB=102400KB=204800个数据块
例3:$find /home -user shenchao
在根目录下查找所有者为沈超的文件(-group根据所属组找)
例3:$find /etc -cmin -5
在/etc下查找5分钟内被修改过属性的文件及目录
选项:-cmin 文件属性change
-mmin文件内容modify
-amin访问时间access
例4:$find /etc -size +163840 -a -size -204800
在/etc下查找大于80MB小于100MB的文件
ps:-a 两个条件同时满足;-o两个条件满足任意一个(相当于or)
例5:$find /etc -name init* -a -type f
查找在./etc目录下名字头部为init开头的文件
-type 的选项有 f 代表文件;d 代表目录; l代表软链接文件
例6:$find /etc -name inittab -exec ls -l {} \;
在/etc目录下查找名字为inittab的文件或目录并且显示其详细信息
$find /etc -name inittab -a -type f -exec ls -l {} \;
在/etc目录下查找名字为inittab的文件并且显示其详细信息
-exec与-ok类似,不同点在于-ok命令会对每次要执行的操作进行再次确认。
例7:针对奇怪的文件名或要删除硬链接
$find . -inum 31531 -exec rm {} \;
在当前目录下查找inode号为31531及删除操作
语法:locate 文件名
功能:在文件资料库中查找文件,locate命令其实是“find -name”的另一种写法,但是要比后者快得多,资料库每天更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用$updatedb命令,手动更新数据库。但在/tmp临时目录的文件不在资料库之内。
例:$locate inittab
$ locate /m
搜索根目录下,所有以m开头的文件
加-i参数,会忽略文件名大小写
例:$ locate -i /m
搜索用户主目录下,所有以m开头的文件,并且忽略大小写。
语法:which 命令
功能:搜索命令所在目录及别名信息
例:$ which grep
语法:whereis 命令
功能:查看命令所在目录及帮助文档路径,与which类似
例:$ whereis grep
语法:grep -iv [指定字符串] [文件名]
-i 不区分大小写
-n 加行号
-v 排除包含指定字符串的行
功能:在文件中搜索字符串匹配的行并输出
例:$grep -v ^# /etc/inittab
在文件中去除注释行
ps:#前面的^表示以#开头的行去掉