一、命令介绍
find 命令用于按照指定条件来查找文件。
一些比较常用参数如下表
参数 |
作用 |
-name |
匹配名称 |
-perm |
匹配权限mode为完全匹配( –mode包含即可) |
-user |
匹配所有者 |
-group |
匹配所有组 |
-mtime –n +n |
匹配修改内容时间(-n n天以内 +n n天之前) |
-atime –n +n |
匹配访问内容时间(-n n天以内 +n n天之前) |
-ctime –n +n |
匹配修改文件权限时间(-n n天以内 +n n天之前) |
-nouser |
匹配无所有者文件 |
-nogroup |
匹配无所有组文件 |
-newer file1 !file2 |
匹配比file1新 比file2旧的文件 |
--type b/d/c/p/l/f |
匹配文件类型(参数依次块设备、目录、字符设备、管道、链接文件、文本文件) |
-size |
匹配文件的大小(+为超过设定值大小的文件,-为小于设定值大小的文件) |
-prune |
忽略某个目录 |
-exec…………{}\; |
后面可跟用于进一步处理搜索结果的命令 |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
二、实例
想要搜索 /etc 目录下 ,文件名以pass开头的文件有哪些,我们该如何操作呢?
find /etc -name "pass*"
可以看到,当我执行完上述命令后,/etc 及其子目录下所有文件名以 pass 开头的文件就全部列出了
如果我们想要搜索 /home 目录下所有的一般文本文件,该怎么操作呢?
find /home -type f
我们要搜索 /home 目录下 修改时间是天内的文件,
find /home -mtime - 1
同理, -a -c 参数 根据自己不同的筛选条件来使用。
查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件,并显示出这些文件的文件类型。
find -type f -perm 644 -exec file {} \;
-exec ....... {}\; 参数类似于管道符 上述我们按照我们筛选的条件找出文件 ,利用-exec....{}\; 命令连接 file命令,实现查看文件类型。
接下来我们查找当前目录小于5K的文件,并列出文件详细信息
find -size -5k -exec ls -l {} \;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
三、总结
在Linux系统中,搜索工作一般都是通过find来完成的,find命令可以以不同的文件特性作为匹配条件,所有find命令非常强大,
想要熟练自如的运用Linux命令,只能通过不断的练习。
我是一个刚刚接触Linux的小白,我与你们一起学习,一起进步!
文章不当之处,望各位指正