文件的搜索---find

来源:互联网 发布:千驮谷日本语学校 知乎 编辑:程序博客网 时间:2024/05/19 20:22

1.根据文件名或者正则表达式进行搜索
find ? -name “?” -print
第一个?指的是查找位置;
第二个?指的是条件或者文件名。
-name那里也可以换成-path(匹配文件路径)或者-regex(基于正则表达式匹配文件路径)

2.否定参数
eg: find . ! -name “*.txt” -print

3.基于目录深度的搜索
-maxdepth和-mindepth
eg: find . -maxdepth 2 -name “*.txt” -print
(最多向下遍历两个子目录)

4.根据文件类型进行搜索
eg: find . -type d -print
f—普通文件 l—符号链接 d—目录 c—字符设备
b—块设备 s—套接字 p—FIFO

5.根据文件时间进行检索
访问时间(access)-atime:用户最后一次访问文件的时间。
修改时间(modify)-mtime:文件内容最后一次被修改的时间。
变化时间(change)-ctime:文件元数据(如权限或所有权)最后一次改变的时间。
eg:
打印出最近7天内被访问过的所有文件:
find . -type f -atime -7 -print

6.基于文件大小的搜索
根据文件大小进行搜索
eg:find . -type f -size +2k

7.删除匹配的文件
-delete可以用来删除find查找到的匹配文件
eg: find . -type f -size +2k -delete

8.基于文件权限和所有权的匹配
eg: find . -type f -name “*.txt” -perm 644 -print
-perm指明匹配的具有特定权限值的文件。

eg: find . -type f -name “*.php” ! -perm 644 -print
找出没有设置好执行权限的php文件。

eg:find . -type f -name “*.txt” -user haha -print
-user指明打印出用户为haha的匹配文件