find

参数选项

-amin <分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-anewer <参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;
-atime <24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin <分钟>:查找在指定时间之时被更改过的文件或目录;
-cnewer <参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-ctime <24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-daystart :从本日开始计算时间;
-depth :从指定目录下最深层的子目录开始查找;
-expty :寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;
-exec <执行指令>:假设find指令的回传值为True,就执行该指令;
-false :将find指令的回传值皆设为False;
-fls <列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;
-follow :排除符号连接;
-fprint <列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;
-fprint0 <列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
-fprintf <列表文件><输出格式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;
-fstype <文件系统类型>:只寻找该文件系统类型下的文件或目录;
-gid <群组识别码>:查找符合指定之群组识别码的文件或目录;
-group <群组名称>:查找符合指定之群组名称的文件或目录;
-help 或 ——help:在线帮助;
-ilname <范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
-iname <范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
-inum <inode编号>:查找符合指定的inode编号的文件或目录;
-ipath <范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
-iregex <范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
-links <连接数目>:查找符合指定的硬连接数目的文件或目录;
-iname <范本样式>:指定字符串作为寻找符号连接的范本样式;
-ls :假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
-maxdepth <目录层级>:设置最大目录层级;
-mindepth <目录层级>:设置最小目录层级;
-mmin <分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mount :此参数的效果和指定“-xdev”相同;
-mtime <24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-name <范本样式>:指定字符串作为寻找文件或目录的范本样式;
-newer <参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-nogroup :找出不属于本地主机群组识别码的文件或目录;
-noleaf :不去考虑目录至少需拥有两个硬连接存在;
-nouser :找出不属于本地主机用户识别码的文件或目录;
-ok <执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
-path <范本样式>:指定字符串作为寻找目录的范本样式;
-perm <权限数值>:查找符合指定的权限数值的文件或目录;
-print :假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-print0 :假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
-printf <输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
-prune :不寻找字符串作为寻找文件或目录的范本样式;
-regex <范本样式>:指定字符串作为寻找文件或目录的范本样式;
-size <文件大小>:查找符合指定的文件大小的文件;
-true :将find指令的回传值皆设为True;
-type <文件类型>:只寻找符合指定的文件类型的文件;
-uid <用户识别码>:查找符合指定的用户识别码的文件或目录;
-used <日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
-user <拥有者名称>:查找符和指定的拥有者名称的文件或目录;
-version 或——version:显示版本信息;
-xdev :将范围局限在先行的文件系统中;
-xtype <文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。

查看指定目录内两分钟内有修改的文件

find /var/log -cmin -2

查看两天内有修改过的文件

find . -ctime -2

查看指定目录内命名为指定名称的文件

find . -name original-ks.cfg

支持通配符,使用通配符的是要要加引号。

find /var/log/ -name '*.log'

要忽略 a 目录:

find . -path ./a -prune -o -type f -name s.txt -print

查找当前目录下的所有*.doc文件并将所有结果复制到 /tmp/doc 目录下

相比于-name,-iname可以忽略大小写

find . -iname "*.doc" -type f -exec cp {} /tmp/doc \;

指定文件类型为块(block)文件

-type可以指定文件类型为f(文件),d(目录),b(块文件),l(软链接)

[root@alvin ~]# find /dev/ -type b -ls
 10811    0 brw-rw----   1 root     disk     253,   0 Aug  9 07:58 /dev/dm-0
 11524    0 brw-rw----   1 root     disk       8,   3 Aug  9 07:58 /dev/sda3
 11523    0 brw-rw----   1 root     disk       8,   2 Aug  9 07:58 /dev/sda2
 11522    0 brw-rw----   1 root     disk       8,   1 Aug  9 07:58 /dev/sda1
  9666    0 brw-rw----   1 root     disk       8,   0 Aug  9 07:58 /dev/sda
[root@alvin ~]# find /dev/ -type b -exec ls -l {} \;
brw-rw----. 1 root disk 253, 0 Aug  9 07:58 /dev/dm-0
brw-rw----. 1 root disk 8, 3 Aug  9 07:58 /dev/sda3
brw-rw----. 1 root disk 8, 2 Aug  9 07:58 /dev/sda2
brw-rw----. 1 root disk 8, 1 Aug  9 07:58 /dev/sda1
brw-rw----. 1 root disk 8, 0 Aug  9 07:58 /dev/sda

指定权限搜索

查找文件权限等于指定权限的文件

这里我们查看文件等于0200权限的文件,就是只有一个所属者可写的文件。

$ find . -perm 0200 -exec ls -l {} \;
--w------- 1 root root 0 Feb 18 16:43 ./a

查找文件权限大于等于指定权限的文件

[root@test1 ~]# find . -type f -perm -0600 -exec ls -l {} \;
-rw-r--r--. 1 root root 18 Dec 29  2013 ./.bash_logout
-rw-r--r--. 1 root root 176 Dec 29  2013 ./.bash_profile
-rw-r--r--. 1 root root 176 Dec 29  2013 ./.bashrc
-rw-r--r--. 1 root root 100 Dec 29  2013 ./.cshrc
-rw-r--r--. 1 root root 129 Dec 29  2013 ./.tcshrc
-rw-------. 1 root root 1555 Dec 17 15:35 ./anaconda-ks.cfg
-rw-------. 1 root root 1813 Dec 18 18:35 ./.ssh/authorized_keys
-rw-------. 1 root root 26099 Feb 18 14:54 ./.bash_history
-rw-r--r-- 1 root root 11 Feb 14 17:54 ./a.
-rw------- 1 root root 4000 Feb 18 14:57 ./.viminfo
-rw------- 1 root root 35836 Feb 18 16:35 ./file
-rw------- 1 root root 0 Feb 18 16:43 ./c
-rwxrwxrwx 1 root root 0 Feb 18 16:43 ./d
[root@test1 ~]#

满足部分权限就匹配

满足权限位中其中一个就匹配

find . -type f -perm /0600 -ls