您的位置:首页 > 运维架构 > Linux

Linux——学习篇(二)之find命令

2016-05-19 22:10 423 查看
Linux中的find命令:
对于Linux而言,有着“一切皆文件”的这一特性,所以相比较windows而言对于文件没有后缀名,查找是并不轻松的的。因此,需要我们熟悉Linux下的find命令,更快地找到我们所需要的文件。
1. 命令格式

find pathname -options [ -print -exec -ok ...]

2. 命令参数
pathname: find 命令所查找的目录路径。例如用.来表示当前目录,用、表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给的shell命令。
-ok: 与-exec的作用相同,在执行每一个命令之前,都会给出提示,让用户判断是否执行。
3. 命令选项
(1)-name 按照文件名查找文件。
查找在$HOME目录下所有符合的log文件。
find ~ -name "*.log" -print
想要在当前目录及子目录中查找所有的‘ *.log‘文件:
find . -name "*.log" -print
想要的当前目录及子目录中查找文件名以一个大写字母开头的文件:
find . -name "[A-Z]*" -print
想要在/etc目录中查找文件名以host开头的文件:

find /etc -name "host*" -print
想要查找$HOME目录中的文件:
find ~ -name "*" -print 或find . -print
要想让系统高负荷运行,就从根目录开始查找所有的文件:

find / -name "*" -print
如果想在当前目录查找文件名以一个个小写字母开头,最后是4到9加上.log结束的文件:
find . -name "[a-z]*[4-9].log" -print



(2)-perm 按照文件权限来查找文件。
例:查找user为可读可写可执行,group为可读可写不可执行,other为可读不可写不可执行(764):



(3)-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
例:TEST目录下查找文件,但不希望在TEST/test目录下查找



(4)-user 按照文件属主来查找文件。
例:在在$HOME目录中查找文件属主为root/sust的文件




(5)-group 按照文件所属的组来查找文件。

-nogroup 查找没有有效所属用户组的所有文件
例:在当前目录下查找属于root用户组的文件和文件系统的根目录处查找没有有效所属用户组的所有文件



(6)-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
例:希望在系统当前目录下查找更改时间在3日以内的文件:find . -mtime -3 -print
为了在根目录下查找更改时间在3日以前的文件,可以用:
find / -mtime +3 -print
(7)-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
例:查找更改时间比文件test.c新但比文件Public旧的文件:
find -newer test.c ! -newer Public -print




(8)-type 查找某一类型的文件,诸如:b - 块设备文件。d - 目录。c - 字符设备文件。p - 管道文件。l - 符号链接文件。f - 普通文件。
例:在当前目录下查找普通文件(f),目录文件(d),符号连接文件(l)




(9)-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
例:在当前目录下查找文件长度为10块字节的文件

find . -size 10 -print
find命令从当前目录开始,查找一个名为CON.FILE的文件。 find . "CON.FILE" -depth -print




(10)-mount:在查找文件时不跨越文件系统mount点
例:从当前目录开始查找位于本文件系统中文件名以XC结尾的文件
find . -name "*.XC" -mount -print



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux name find