17, 搜索文件

1,locate

locate是通过数据库的方式搜索的,所以速度更快,要先安装locate,新系统都是mlocate或者slocate,locate命令通过符号链接过去。所以可以

yum install mlocate

查找文件如果报错

[root@minimal html]# locate mysql.log

locate: 无法执行 stat () `/var/lib/mlocate/mlocate.db': 没有那个文件或目录

可以使用

updatedb

命令更新数据库,如果有新文件,需要执行updatedb,更新才能搜索到。应该仍然比find快。updatedb也会每天自动执行一次。

2, find

1),tests

-type c        匹配c类型文件

-user name  匹配属于name用户的文件/目录

-perm mode  匹配权限

-empty 匹配空文件/目录

还有其他一些时间测测试项

2),操作符

-and 简写为 -a,逻辑与

-or    简写为 -o,逻辑或

-not  简写为 !,逻辑非

( )     可以改变优先级,使用的时候,前面要加反斜线,\(   \)

3), 内建命令

-delete  删除匹配到的

-ls         显示匹配到的

-print     打印匹配到的

-print0   将文件中的单引号、双引号、换行符、空格显示成null

 

例如:

find ~ -type f -name '*.bak' -delete

4),用户定义的操作

-exec command {} ;

{} 代表匹配到的文件和目录,分号;代表exec目录的结束。在实际使用的时候要加引号,如下:

-exec rm '{}' ';'

除了-exec,还有-ok选项,-ok会弹出一个交互,让用户选择是否执行。

5),效率上的改进

-exec command '{}'  ';'    会在每个匹配到的文件/目录上反复执行command命令,但是

-exec command '{}' +     是将所有文件/目录组合成一个列表,来执行command一次。

区别有点类似于

ls -l a.txt

ls -l b.txt

和 ls -l a.txt b.txt

更通用的是用xargs命令 

3,xargs

将标准输入转换成命令的参数列表。例如:

find ~ -type f -name 'foo*' -print | xargs ls -l

为了防止文件名中有特殊字符,应该这么配合使用

find ~ -iname '*.jpg' -print0 | xargs --null ls -l

4,touch 修改文件时间

5,stat 显示文件系统时间 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值