shell 命令之 find 命令三

来源:互联网 发布:网吧无线上网软件 编辑:程序博客网 时间:2024/05/21 06:01

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的所有目录文件……
0 0
原创粉丝点击