Linux find 命令学习记录

在 Linux 系统下要查找文档,少不了要使用 find 命令。find 可以查找出指定名称、类别、时间、大小、权限的文档,能够很好地使用 find 命令的话,要查找文档就事半功倍了。

命令格式

  1. find path -option [ -print ] [ -exec -ok command ] {} ;  

命令参数解析

path

find 命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

option

经常用到的有下面这些:

-name ’字串’ 查找文件名匹配所给字串的所有文件,字串内可用通配符 *、?、[ ]
-lname ’字串’ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符 *、?、[ ]
-gid n 查找属于ID号为 n 的用户组的所有文件
-uid n 查找属于ID号为 n 的用户的所有文件
-group "字串" 查找属于用户组名为所给字串的所有的文件
-user "字串" 查找属于用户名为所给字串的所有的文件
-empty 查找大小为 0的目录或文件
-path "字串" 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]
-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711,644
-size n[bckw] 查找指定文件大小的文件,n 后面的字符表示单位,缺省为 b,
b: 代表512字节的块
c: 表示字节数
k: 表示 kilo bytes (1024字节)
w: 字 (2字节)
M: 兆字节(1048576字节)
G: 千兆字节 (1073741824字节)
-type x 查找类型为 x 的文件,
其中 x 为下列字符之一:
b: 块设备文件
c: 字符设备文件
d: 目录文件
p: 命名管道(FIFO)
f: 普通文件
l: 符号链接文件(symbolic links)
s: socket文件
-amin n 查找n分钟以前被访问过的所有文件
-atime n 查找n天以前被访问过的所有文件
-cmin n 查找n分钟以前文件状态被修改过的所有文件
-ctime n 查找n天以前文件状态被修改过的所有文件
-mmin n 查找n分钟以前文件内容被修改过的所有文件
-mtime n 查找n天以前文件内容被修改过的所有文件
-print 将搜索结果输出到标准输出
-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略
-folow 如果find命令遇到符号链接文件,就跟踪至链接所指向的文件
-exec find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和;之间的空格。
-ok 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行

参数组合

该命令中的寻找条件可以是一个用逻辑运算符 not、and、or 组成的复合条件。逻辑运 算符 and、or、not 的含义为:

and 逻辑与,在命令中用“-a”表示,是系统缺省的选项,表示只有当所给的条 件都满足时,寻找条件才算满足
or 逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足 时,寻找条件就算满足
not 逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件

使用举例

在当前目录查找 以.log结尾的文件。 ". "代表当前目录

  1. find . -name "*.log"  

超找48小时内修改过的文件

  1. find -atime -2  

查找/opt/soft/test/目录下 权限为 777的文件

  1. find /opt/soft/test/ -perm 777  

在root以及子目录查找不包括目录/root/bin的,greek用户的,文件类型为普通文件的,3天之前的名为test-find.c的文件,并将结构输出

  1. find / -name "test-find.c" -type f -mtime +3 -user greek -prune /root/bin -print  

(完)

本文作者: chenishr

本文标题:《Linux find 命令学习记录》

本文地址: http://blog.chenishr.com/?p=214

©版权所有,除非注明, 永在路上文章均为原创,转载请以链接形式注明出处和作者细信息。

发表评论

电子邮件地址不会被公开。 必填项已用*标注