Linux在文件中查找the字样,Linux文件查找

本文介绍了Linux系统中的locate和find命令,指出locate是非实时、依赖数据库的快速查找,而find是实时、精确的搜索。重点讲解了find命令的使用,包括路径选择、文件类型、大小、时间和权限查找,以及操作动作如打印、ls和exec。
摘要由CSDN通过智能技术生成

今天趁空复习了文件查找的相关知识,文件查找对我们来说是很有用的,当我们记不清楚我们把文件放到什么地方的时候,就可以轻松的找到了。这里就写下我学过的两个文件查找的命令,其中有一个是不常用,就简单说下,然后就重点写常使用的那个命令。

在Linux中文件查找主要有:locate,find这两个命令。先说说它们的区别吧:

locate:这个命令是非实时,非精确的查找,是依赖数据库查找的。

find:实时,精确的查找。速度可能有些慢。

简单说下locate命令吧!locate是依赖数据库查找的,上面我们已经说过了,这就意味着,如果没有这个数据库,那么我们就无法使用这个命令来进行查找了。而反之,数据库有了,但是没到更新时间的时候,我们的文件没了。那么在数据库中依然存有这条记录,我们依然可以用这个命令在数据库中查找到,但是却无法真正的找到这个文件,这就是这个命令的短处了。它的使用格式是:locate Keyword:命令加关键字就行了,另外,Linux系统会在默认的时间更新这个数据库,不过我们也可以手动更新,使用:updatedb这个命令就行了,这个命令就说到这吧!

下面是重头戏了,find命令,就是那个常用的命令了。Find命令不仅可以指定文件名进行查找,还可以根据指定路径、文件类型、文件大小、文件的更改时间。还能组合条件进行查找。查找出来的内容默认显示在屏幕上。

命令格式:find [dir1,…] [criteria,…] [action…]:dir:目录;criteria:标准(就是根据什么来查找,如姓名..);action:动作。

例如:#find /etc –name “passwd”:就是查找/etc目录下passwd的文件。

目录什么的没什么好说的,就来说说criteria:

依据文件的名字查找:

-name:依据文件名查找,并且严格区分大小写,并且是精确查找。而且支持globbing方式的文件名通配。例如:

#find /etc –name “passwd*” :查找/etc目录下passwd开头的文件;

-iname:不区分字母大小写,方法如-name;

-regex “PATTERN”:依据正则表达式查找;

依据文件的属主、属组查找:

-user:依据用户来查找,就是查找属于指定的用户的文件;例如:

#find /tmp –user redhat :查找/tmp目录下属于redhat用户的文件;

-group:依据用户组来查找,就是查找属于指定的用户组的文件;

-uid:依据用户UID来查找,也是查找指定的用户的文件,不过是指定用户的UID而已;例如:#find /var/tmp –uid 323 :查找/var/tmp目录下,与uid323对应的用户的所有文件;

-gid:依据用户组的GID来查找;

-nouser:查找所有没有属主的文件;

-nogroup:查找所有没有属组的文件;

依据文件的类型查找:

-type:依据文件的类型来查找文件:

f:普通文件;

d:目录文件;

l:链接文件;

b:块设备文件;

c:字符文件;

p:管道文件;

s:套接字文件;

例:#find /tmp –type s :查找/tmp目录下所有文件类型是套接字的文件。

依据文件大小查找:

-size:根据文件大小进行查找,默认单位是字节;

单位有k|M|G

例如:#find /tmp –size 10M :查找/tmp目录下,文件大小大于9M,小于等于10M的文件,为什么举这个例子呢?就是因为这点有些特殊。我们查找小于10M的文件和大于10M的文件的例子分别如下:#find /tmp –size -10M ;#find /tmp –size +10M。对,就是在10M前加个-号或+号来表示小于10M或大于10M的。

依据时间查找:

-atime:依据文件的访问时间来查找文件;

-mtime:依据文件的修改时间来查找文件;

-ctime:依据文件的改变时间来查找文件;

默认单位是天,例如:

#find /tmp –atime 3:查找/tmp目录下,正好距此时三天被访问过的文件;

#find /tmp –atime -3:查找/tmp目录下,在距此时三天内被访问过的文件;

#find /tmp –atime +3:查找/tmp目录下,在距此时三天前被访问过的文件,也就是距此时三天内没有被访问过的文件;

-amin、-mmin、-cmin :与-atime等一样,只不过默认时间是分钟,代换一下就知道这些命令的使用方法了。

依据文件的权限查找:

-perm:依据文件的权限来进行文件查找;例如:

#find /tmp 755 :查找/tmp目录下,所有权限位都满足的文件;

#find /tmp +755(/755) :查找/tmp目录下,任何一类用户某一个权限位符合条件的文件;

#find /tmp -755 :查找/tmp目录下,所有类别用户的所有权限位符合条件。

(注:-002: 这里的0表示不做检查)

Criteria说完了就来说说Action:

-print:显示信息,这是默认选项;

-ls:以长格式显示信息;

-ok:查找到文件以后,可以指定要执行的命令,会有提醒;

-exec:查找到文件以后,也可以指定要执行的命令,但不会有提醒;

-exec rm {} \; : -exec加要执行的命令加{} \;,这是使用格式。记住会用就行。

例如:#find /etc –size 10M –ls:查找/tmp目录下,大于9M小于等于10M的文件,并将其文件信息以长格式显示出来;

#find /tmp –nouser –exec  rm {} \; :查找/tmp目录下,没有属主的文件,并将其删除;

最后说下find支持的组合条件:

-a:与 、-o:或 、-not:非 :其中,非优先级最高,与第二,或第三;默认是-a与关系。例如:

#find /tmp –name “*lc*” [-a] –user redhat:查找/tmp目录下,文件名中含有lc字符且属主是redhat的文件。

额,时间又不早了,就到这吧!我想写的应该能看懂吧!有些还有待完善,等明天有时间再来补充补充。呵呵。有错误提出来哈!睡觉咯!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值