linux shell locate,shell学习之locate和find命令

本文介绍了Linux系统中两个常用的文件搜索命令——locate和find。locate依赖于预构建的数据库,需要定期更新以查找最新文件,而find命令则实时搜索文件系统,支持多种搜索条件和操作。举例说明了如何使用这两个命令查找和处理文件,如查找并删除3分钟前创建的包含数字的文件。
摘要由CSDN通过智能技术生成

linux系统中有几个关于文件搜索的命令,例如:locate,wheris以及find在工作中比较常用到。.

1.locate命令:locate查找文件是基于/var/lib/mlocate数据库,该数据库包含所有的本地文件信息,Linux系统自动创建这个数据库,并且每天自动更新一次。本地刚创建一个文件,但使用locate命令搜索不到本地文件,需要使用updaetedb手动更新一下本地数据库。

[root@node-2 ~]# touch helloWorld

[root@node-2 ~]# locate helloWorld

[root@node-2 ~]# updatedb

[root@node-2 ~]# locate helloWorld

/root/helloWorld

[root@node-2 ~]#

常用使用方法及参数:

locate 文件名称 #会匹配出本地/var/lib/mlocate数据库中已经建立索引的包含文件名称的所有文件。

[root@node-2 ~]# locate /etc/passwd

/etc/passwd

/etc/passwd-

[root@node-2 ~]#

常用参数

-h --help #显示帮助

-V --version #显示版本信息

-b, --basename match only the base name of path names #只匹配路径名的基本名称

-c, --count only print number of found entries #只打印找到的条目数量

-e, --existing only print entries for currently existing files #仅打印当前存在的文件的条目

-i, --ignore-case ignore case distinctions when matching patterns #忽略大小写

-w, --wholename match whole path name (default) #匹配整个路径名称(默认)

2.find命令:find命令可以在不通位置根据不同标准搜索任何文件,并支持多种方式处理搜索结果。其工作流程:(1)搜索所有用户指定的路径,包括所有的子目录。(2)对于遇到的每个文件,根据是否符合用户指定的条件,所有符合条件的文件形成一个列表。(3)对于结果列表的文件,执行用户指定的操作。

参数:

-name filename #表示包含指定匹配模式的文件名

-iname filename #表示包含指定匹配模式的文件名,不区分大小写

-type #指定文件类型,f表示普通文件 ,d表示目录,c表示块设备,p表示管道,l表示连接

-user userid #匹配其所有者为指定用户ID的文件

-group groupid #匹配其所有者的组为指定组ID的文件

-size size #匹配其大小为size的文件

-empety #匹配空文件

-amin[-+]n #文件最后一次访问时间,-n表示时间为n分钟以内,+n表示n分钟之前,n表示刚好n分钟

-atime [-+]n #天

-cmin[-+]n #文件最后一次状态改变时间

-ctime[-+]n #

-mmin [-+]n #最后一次被修改时间

-mtime [-+]n

动作:

-print #默认动作,将搜索结果写入到标准输出

-fprint file #将搜索结果写入到file中

-ls #以详细格式展示搜索结果

-fls file #将详细格式结果写入file

-delete #将结果文件删除

-exec command {} \; #查找并执行命令,{}表示搜索到的文件名

-ok command {}\; #查找并执行命令,但是需要用户确认

列子,找到3分钟之前创建包含一个数字的文件并将其删除。

[root@node-2 home]# ll -rst

total 8

4 drwxr-xr-x. 2 root root 4096 Mar 21 19:34 ISO

4 drwx------. 4 xguest xguest 4096 Mar 22 01:06 xguest

0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file1[a-z].1

0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file2[a-z].2

0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file3[a-z].3

0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file5[a-z].5

0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file7[a-z].7

0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file6[a-z].6

0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file8[a-z].8

0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file9[a-z].9

0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text1.txt

0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text2.txt

0 -rw-r--r-- 1 root root 0 Apr 20 17:27 tex

[root@node-2 home]# find -type f -mmin +3 -iname "*[1-9]*" -exec rm -rf {} \;

[root@node-2 home]# ll -rst

total 8

4 drwx------. 4 xguest xguest 4096 Mar 22 01:06 xguest

0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text1.txt

0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text2.txt

0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text3.txt

0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text4.txt

0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text5.txt

0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text6.txt

0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text9.txt

0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text8.txt

0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text7.txt

4 drwxr-xr-x. 2 root root 4096 Apr 20 17:28 ISO

[root@node-2 home]#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值