文件(夹)搜索
locate命令
通过快速搜索数据库(在Linux中是从根目录下进行搜索),以寻找路径名与给定字符串相匹配的文件,同时输出所有匹配结果。
使用方法:
- locate [参数] 结尾字符/开头字符
- locate [参数] 文件/目录包含的字符
常用参数 | 含义 |
---|---|
c | 输出匹配的数量,而不是文件名 |
e | 只显示当前存在的文件条目 |
i | 忽略大小写 |
l | 限制输出的条目数量。 |
r | 使用基本正则表达式。 |
find命令
find 命令用于在指定目录下查找文件和目录。它可以使用不同的选项来过滤和限制查找的结果。是最常用的搜索命令。
使用方法:
find [路径] [匹配条件] [找到后要执行的命令]
常用参数 | 含义 |
---|---|
-type | 要匹配的文件类型。f 表示普通文件 ,d 表示目录,l 表示软链接,c表示字符设备,b 表示块设备 |
-size | 要匹配的文件的大小。+n表示比n大的文件,-n表示比n小的文件。b表示块,c表示字节,w表示字,k表示KB,M表示MB,G表示GB |
-name | 要匹配的文件名。 |
-cmin n | 要匹配n 分钟前发生改变的文件/目录 |
-ctime n | 要匹配n*24小时前发生改变的文件/目录 |
-user | 匹配属于某一用户的文件/目录 |
-perm | 匹配权限为XXX(八进制数)的文件/目录 |
-cnewer n | 匹配比文件n更改时间更晚的文件/目录 |
操作符 | 操作符含义 |
---|---|
-and | 并且,缩写成-a。用来将多个限制条件连接 |
-or | 或者 缩写成-o。连接多个限制条件 |
-not | 非,否定某个限制条件,寻找除此之外的内容 |
() | 用于确定优先级,书写的时候需要加\进行转义 |
find后直接添加的执行动作 | 含义 |
---|---|
delete | 删除匹配文件 |
ls | 对匹配文件执行ls操作 |
将匹配的文件以全路径标准形式输出,该选项是默认选项 | |
quit | 一旦匹配成功便退出 |
exec | 后边添加一些用户自定义的操作,如rm 等等 |
exec的示例:
find ~ -type f -name '*.txt' -exec rm '{}' ';'
//{}表示前边查询到的内容,分号表示结尾,如果将分号改为加号,可以一次性完成对所有文件的操作,便于提高效率。