前言
本文是学习linux find 命令的学习笔记,主要是为了照顾我的大脑,所以记下来方便以后查询
有兴趣的话可以去看下边的完整版
参考文章:基本格式
1.以下两个命令的效果是一样的, 查找当前目录下所有以 java 结尾的文件名
find . -name "*.java"
find . -name \*.java
2.以下三个命令的结果也是一样的,列出当前目录下所有的所有文件,包括隐藏文件
find
find .
find -print
3.多个查找范围, 同时把错误输出抛弃
find /tmp /usr /home -name "*.jar" 2>/dev/null
4.不区分大小写
find . -iname "*.gif"
5.按类型搜索文件
find . -type d 列出当前目录下的所有子目录
find . -type l 列出当前目下的所有链接
find 可以找到的文件类型包括
b -- 块 (缓存) 特殊
c -- 字符(未缓存)特殊
p -- 命名管道 FIFO
s -- 套接字
查找时间
find 有几个根据系统的时间戳搜索文件的选项, 这些时间戳包括
mtime - 文件内容上次修改时间
atime - 文件被读取或访问的时间
ctime - 文件状态变化时间
------------------以上三个是以小时为单位,下面三个是以分钟为单位--------------
mmin
amin
cmin
关于ctime的说明:由于inode维护着每个文件上的元数据,因此如果与文件相关的元数据发生变化
则inode也会发生变化,这可能是由一系列操作引起的,包括创建到文件的符号连接,修改文件的权限
或者移动文件,在这些情况下,文件没有被修改,也没有被访问,所以mtime , ctime 不会变化,但
是ctime 则会变化
这些值都需要与一个值 n 结合使用, 方法如下:
-n 返回项小于n
+n 返回项大于n
n 返回项刚好等于n
1. find . -mtime 1 查找刚好在一个小时前修改的文件
2. find . -mtime +1 查找一个多小时之前修改的文件
3. find . -mtime -1 查找在一个小时之内修改的文件
使用 -newer ... 查找与以修改过的文件或访问过的文件与指定的文件的比较
-newer 内容最近被修改过的文件
-anewer 内容最近被访问过的文件
-cnewer 状态最近发生变化的文件
查找当前目录下在test.tar.gz 之后被修改过的文件
find . -newer test.tar.gz
按照大小查找文件
-size 选项可以支持按照大小查找文件
1. find . -size +5M 2>/dev/null
2. find . -size +1G 2>/dev/null
控制find
-depth 确保现在一个目录中查找,然后才到其他的目录
-maxdepth 搜索的最大层数
-mindepth 搜索的最小层数,即最低从哪一层开始查找
阅读(1446) | 评论(0) | 转发(1) |