find 命令使用总结

发表于: lnmpa | 作者: darkmi | 日期: 2013/04/09 08:00
标签: find
字号:

find命令用于在指定路径中查找符合条件的文件,搜索路径可以是多个目录,不同目录之间以空格分隔。

语法:

find 搜索路径 匹配表达式

匹配表达式的类型如下:

-name <表达式>

根据文件名查找文件

-iname <表达式>

根据文件名查找文件,忽略大小写

-path <表达式>

根据路径查找文件

-ipath <表达式>

根据路径查找文件,忽略大小写

-amin <分钟>

过去N分钟内访问过的文件

-atime <天数>

过去N天内访问过的文件

-cmin <分钟>

过去N分钟内修改过的文件

-ctime <天数>

过去N天内修改过的文件

-anewer <参照文件>

比参照文件更晚被读取过的文件

-cnewer <参照文件>

比参照文件更晚被修改过的文件

-size <大小>

根据文件大小查找文件,单位b c w k M G

-type <文件类型>

根据文件类型查找文件。b 块设备 c 字符设备 d 目录 p 管道文件 f 普通文件 l 链接 s 端口文件

-user <用户名>

按归属用户查找文件

-uid

按UID查找文件

-group

<群组名> 按归属群组查找文件

-gid

按GID查找文件

-empty

查找空文件

(1)匹配表达式1

-name filename

filename为要查找的文件名。可以使用通配符“*”,“?”,但要用双引号将文件名引起来

例1:在当前目录下查找以h开头的文件

【root@localhost tmp】# find –name ‘h*’ –print

例2:在整个文件系统中查找名为hosts的文件

【root@localhost tmp】# find / –name host -print

-user username:

username为查找属于username用户的文件

例3:找出/home下属于用户user1的所有文件

【root@localhost tmp】# find /home –user user1 –print

-group groupname:

查找属于groupname组的文件

-print:显示找到文件路径名

(2)匹配表达式2

-exec 命令 {}:对找到的匹配文件,执行所列出的命令,而不询问用户是否执行这些命令,参数{} 由find找到当前的文件路径名取代,命令行末尾必须有“\;”。

例子:【root@localhost tmp】# find /home –user user1 –exec cat {}\;|more

翻译:找出/home下属于用户user1的所有文件并显示其内容

例子:【root@localhost tmp】# find /home –user user1 –exec rm –r {} \;

翻译:找出/home下属于用户user1的所有文件并删除

-ok 命令{}:与-exec的用法相同,在执行命令之前询问用户是否要执行命令

(3)匹配表达式3

-atime n:查找前n天访问过的文件(仅第n天这一天)

-atime +n:查找前n天之前访问过的文件;-n则表示前n天之后

例子:【root@localhost tmp】# find /home –atime +365 –print

翻译:找出用户一年前访问过的文件

例子:【root@localhost tmp】# find $home –user user1 –atime +3 –exec rm –r {} \;

翻译:找出用户user1主目录下属于自己的前3天之前访问过文件并删除

(4)匹配表达式4

-type filetype:指定查找的文件类型

filetype 可以是:b块文件;c字符设备文件;d目录文件;f一般文件

例子:【root@localhost tmp】# find –type d –print

翻译:查找当前目录下的所有的子目录

例子:【root@localhost tmp】# find –type f –print

翻译:查找当前目录下的所有的普通文件

(5)匹配表达式5

-size Number和-size Numberc:按照文件大小进行查找。Numberc表示以字节为单位,否则以块(一般是512字节)为单位。-Number(或-Numberc)表示查找比该值小的文件,+Number(或-Numberc)表示查找比该值大的文件

例子:【root@localhost tmp】# find –size -10 –print

翻译:查找当前目录下所有长度小于10块的文件

例子:【root@localhost tmp】# find –size -10c –print | ls –l

翻译:查找当前目录下所有长度小于10字节的文件并以长格式显示文件信息

例子:【root@localhsot tmp】# find –size +100 –size -200 –exec ls –s {} \;

翻译:在当前目录下查找100~200块长的文件并显示文件的实际块数

切换主题切换主题
返回顶部