find顾名思义就是查找,Linux下find命令提供至关多的查找条件,所以功能比较强大,能够在众多文件或目录下查找你想要的任何文件或目录。shell
find 命令格式:find pathname -options [-print -exec -ok...]安全
pathname表示find命令所查找的文件或目录的路径。例如:/home/tools/tongyanide
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的做用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每个命令以前,都会给出提示,让用户来肯定是否执行。3d
find经常使用命令格式:blog
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天之内,+n指n天之前
-atime -n +n #按文件访问时间来查GIN: 0px">it
-ctime -n +n #按文件建立时间来查找文件,-n指n天之内,+n指n天之前io
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 # 找文件,-n指n天之内,+n指n天之前
-ctime -n +n #按文件建立时间来查找文件,-n指n天之内,+n指n天之前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号连接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号连接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查位于某一类型文件系统中的文件,这些文件系统类型一般可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #若是遇到符号连接文件,就跟踪连接所指的文件
-cpio #查位于某一类型文件系统中的文件,这些文件系统类型一般可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #若是遇到符号连接文件,就跟踪连接所指的文件
-cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune #忽略某个目录class
下面具体说明test
查找方式有不少种,好比按文件类型(-type),文件名(-name),文件属主(-user),文件所属组)(-group),文件权限(-perm),文件长度(-size),文件修改时间(-mtime)等查找。file
文件类型包括:d 目录文件。
l 符号连接(指向另外一个文件,相似于瘟下的快捷方式) 。
s 套接字文件。
b 块设备文件,二进制文件。
c 字符设备文件。
p 命名管道文件。
- 普通文件,或更准确地说,不属于以上几种类型的文件。
文件权限包括:r 读文件
w 写文件
x 执行文件操做
(1)按文件类型查找
find test1 -type d
(2)按文件名查找
find test1 -name test2
(3)按文件属主
find test1 -user wangmengting
(4)按文件所属组
find test1 -group wangmengting
(5)按文件修改时间
find test1 -mtime -1
其余的就不一一演示了。
注意:那若是查找出来的文件太多,可用如下方式进行显示。例如:
-print :将查找到的匹配的文件输出到标准输出
find /home -type f -print
此外,还能够对文件进行额外的操做。例如:
-exec :将查找到的文件进行额外的动做
find /test1 -name “test2.txt” -exec rm {} \;
{}:指的是find找到的内容,即找到的结果会被放到{}的位置中;
-exec 到 \; :是关键字表明find额外动做的开始(-exec)到(\;)结束,这中间的就是find指令内的额外动做,在上面例子中就是【 rm {} 】;
\ :为转义字符。
find -mtime这个参数的使用
#mtime参数的理解应该以下:-mtime n 按照文件的更改时间来找文件,n为整数。n表示文件更改时间距离为n天, -n表示文件更改时间距离在n天之内,+n表示文件更改时间距离在n天之前。例如:-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)之内的文件。-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)以外的文件-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)以内的文件为何-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间48小时以外的文件,而不是24小时以外的呢?由于n值只能是整数,即比1大的最近的整数是2,全部-mtime+1不是比当前时间大于1天(24小时),而是比当前时间大于2天(48小时)。