文件搜索命令

2017-01-10  本文已影响0人  大眼杰的世界

语法: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:#前面的^表示以#开头的行去掉

上一篇 下一篇

猜你喜欢

热点阅读