find 最常用的命令也许就是依据,类型,时间戳,文件大小进行查找了,这些命令选项组合使用能达到很好的查找效果
一 依据文件类型查找
find path -type file_type 是按类型查找的通用格式
其中path为要查询的路径, file_type 表示代表某种文件类型的字符。
有关file_type的取值及意义,可以参考下表:
文件类型 | 代表字符 |
---|---|
普通文件 | f |
符号链接 | l |
目录 | d |
字符设备 | c |
块设备 | b |
管道 | s |
队列 | p |
所以有以下命令 find . -type d #查找.路径下的所有目录文件
find . -type f #查找.路径下的普通文件
find . -type l #查找.路径下的符号链接文件
……
二 依据时间戳查找
一个文件肯定有与之相关的修改时间,访问时间这些时间戳信息,我们也可以依据这些时间信息进行查找,比如两天前修改的所有文件,访问的所有文件,改变的所有文件等……
find path time_option time 下面分别解释time_option 和time的取值及含义
下面是time_option 参数的取值及含义
time_option 取值 | 意义 |
---|---|
-atime | 最后被访问的时间 |
-mtime | 最后被修改内容的时间,与-ctime的区别是-mtime指的是内容的修改 |
-ctime | 最后被改变的时间,改变的内容指文件权限和所有者等属性信息 |
-amin | 同-atime |
-mmin | 同-mtime |
-cmin | 同-ctime |
前三个选项参数,与后三个的意义相同,不同的是以time结尾的参数的时间单位是天,以min结尾的时间单位是分钟。
下面再看看time的取值及含义
time 的取值是一个数字,这个数字前面可以带上+ ,-符号,和不带,但是表示的含义不同
取值形式 | 意义 |
---|---|
+n | 表示大于n |
n | 表示确切为n |
-n | 表示小于n |
这么说,不容易理解,但是结合下面的例子,应该就好理解了
例子 | 含义 |
---|---|
find . -atime +7 | 查找7天以前最后一次被访问的所有文件,大于7天 |
find . -atime 7 | 查找7天前那当天最后一次被访问的所有文件 确切的为7天前那天 |
find . -atime -7 | 查找7天以内最后一次被访问的所有文件,小于7 |
表达时间命令的还有一个 -newer选项,这个选项允许提供一个文件作为参考标准。比如我们忘了某个文件是什么时被访问,被修改了,但是我们知道,是在修改某个文件之后进行修改的。
那么就可以使用 -newer选项
find . -newer file.txt # 表示所有修改内容的时间比file.txt的修改时间大的所有文件,比file.txt修改的时间大意思指,最接近于当前时间。
三 依据文件大小
还可以依据文件大小进行查找,选项参数为-size 如:
find path -size size_number
其中size_number 的取值为 [+-]n[bcwkMG]其中n为大于0的整数
什么意思呢?
首先+表示大于n,-表示小于n,[bcwkMG]表示的是文件大小的单位
单位字符 | 意义 |
---|---|
b | 512字节块 |
c | 一个字节 |
w | 两个字节 |
k | KB为单位 1024字节 |
M | MB 1024KB为单位 |
G | GB为单位 |
例子 | 含义 |
---|---|
+2k | 文件大小大于2KB, + 表示大于 |
2k | 文件大小等于2KB 确切的等于 |
-2k | 文件大小小于2KB, -表示小于 |
至此已经有了依据文件类型,依据时间,依据大小的命令参数用法,合理的组合这些选项参数,可以做出个性化,精确的查找
find . -type f -size +2k -atime -2 # 查找.路径下2天之内访问的文件大小超过2K的所有普通文件
find . -type d -size -3M -newer file.txt # 查找.路径下在file.txt修改之后被修改的文件大小小于3M的所有目录文件
……