断更多日,很是抱歉。 今日继续,本次内容为 Linux 操作命令之-- 搜索命令
Linux 搜索命令 -- find
---- Linux find命令 用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
1.find 搜索
--- -Linux下 find 命令提供了相当多的查找条件,功能很强大
- 要素: 通过 find 命令 在特定目录下(包含后代目录) 搜索符合条件的文件
- 语法: find path -option [ -print ] [ -exec -ok command ] {} \;
在指定目录中 根据名称 搜索
-
命令格式
序号 | 命令格式 | 作用 |
---|---|---|
01 | find [路径] -name '*.txt' | 查找指定路径下扩展名是 .txt的文件, 包括子目录 |
- 如果省略路径, 表示在当前文件夹下查找
- 之前文章中有提到的通配符, 在使用find命令时同时可用
- 补充:(部分通配符)
-
第一步: 搜索指定目录下, 文件是 abc.txt的文件
# ===================实现目标=========================================
# 方式一: 指定全目录 find /export/ -name 'abc.txt'
# 方式二: 当前目录 find . -name 'abc.txt'
# 方式三: 当前目录 可以 省略 不写 find -name 'abc.txt'
第二步: 搜索指定目录下, 文件名 包含
1
的文件
# ===================准备工作=========================================
# 1 创建测试文件 touch /export/12.txt /export/616.txt /export/321.txt
# ===================实现目录=========================================
# find /export/ -name "*1*"
第三步: 搜索指定目录下,所有以
.txt
为扩展名的文件
-
find /export/ -name "*.txt"
第四步: 搜索指定目录下, 以数字
1
开头的文件
-
find /export -name "1*"
小结.
-
通过
find [path] -name "*1*"
完成根据名称搜索文件
----最后附上 find常见命令参数
<strong>命令选项:<
/strong
>
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件 【-7 7天之内 +7 7天前】
-nogroup 查找无效属组的文件,即该文件所属的组在
/etc/groups
中不存在。
-nouser 查找无效属主的文件,即该文件的属主在
/etc/passwd
中不存在。
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
-
type
查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c] 查找文件长度为n块的文件,带有c表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-follow:如果
find
命令遇到符号链接文件,就跟踪至链接所指向的文件。
另外,下面三个的区别:
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后n*24小时访问的文件
-cmin n 查找系统中最后N分钟被改变文件状态的文件
-ctime n 查找系统中最后n*24小时被改变文件状态的文件
-mmin n 查找系统中最后N分钟被改变文件数据的文件
-mtime n 查找系统中最后n*24小时被改变文件数据的文件