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

【每天一点linux】find命令的详细说明

2017-03-30 18:30 405 查看
在linux下有一个命令的功能相当强大,这个命令就是find。它主要是在目录结构中搜索文件,并执行指定的操作。

命令格式:find [path] [option] [action]

命令功能:用于在文件树中查找文件,并做出相应的处理(可能存在访问磁盘的行为)

命令参数:分为四种类型,分别是与时间有关、与用户或者用户组有关、与文件权限及名称有关、其他的操作

1.与时间有关的参数

-atime(access time ):文件最后一次访问时间

-ctime(change time ):对文件inode最后修改的时间

-mtime(modify time):文件最后一次修改时间



例1.我们在这个目录下建一个test,然后查看这个test的属性。



然后通过重定向写入“hello”再观察它的ACM时间,这时会发现它的mtime和ctime都发生了改变。用cat获取内容后,再观察,此时它的atime也发生了改变。



好的,说完了这三个时间,我们接着继续说find的时间参数是怎么使用的。在find中,可以用 find -atime/-ctime/-mtime +n/-n来查看在这几个时间在n的改变。下来,我们以-mtime为例。

例2.将过去code目录下24小时内有改动的文件列出。

命令:find -mtime 0



-mtime n:n是数字,在n天之前所在的“一天之内”被更改过的文件。

-mtime +n:列出在n天之前(不含n天本身)的被更改过的时间。

-mtime -n:列出在n天之内(包含n天本身)的被更改过的时间。

-newer file:file为另一个存在的文件夹,列出比file还要更新的文件名。



2.与用户或用户组有关的参数

-user username 按照文件的用户来查找

-group groupname 按所属组名来查找

-nogroup 查无有效属组的文件,即文件的属组在/etc/groups中不存在

-nouser 查无有效属主的文件,即文件的属主在/etc/passwd中不存在

例3.查找在/home下面属于monster的文件。

命令:find /home -user monster



例4.查找系统中不属于任何人的文件

命令:find / -nouser



3.与文件权限及名称有关的参数

-name fimename:查找文件名为filename的文件

-size [+/-] SIZE:查找比SIZE大或者小的文件。

SIZE可以是:c :代表byte;k:代表1024byte。

type TYPE:查找文件类型为TYPE的。TYPE类型包括:一般正规文件(f)、设备文件(b、c)、目录(d)、连接文件(l)、socket(s)及FIFO(p)等属性。

-perm mode:查找文件权限刚好为mode的文件。

-perm -mode:查找文件权限包括mode的文件。比如,我们查找文件权限为0744的文件,权限为4755的文件也会被列出来。

-perm +mode:查找文件权限包含任一权限为mode的文件。比如我们查找权限为-rwxr-xr-x的文件,权限为-rw——-的文件也会被列出来,因为有-rw……权限。

例5.查找当前目录下以.log结尾的文件。

命令:find . -name “*.log”



例6.查找当前目录下,权限为777的文件。

命令: find -perm 777



例7.查找当前目录下以.log结尾的普通文件。

命令: find . -type f -name “*.log”



例8.查找当前目录下大于1k的文件。

命令:find -size +1000c -print



4.其他的操作

-exec command: command为其他的命令,-exec后面可以接其他命令来处理查找到的结果。

-print:将结果打印到屏幕上。

例9.将当前目录下的普通文件使用ls -l命令列出。

命令: find . -type f -exec ls -l {} \;



在上述命令中,{}代表“由find找到的内容“,这个结果放在{}这个位置中;-exec一直到’\;’是关键字,代表find的额外命令的开始(-exec)到结束(‘\ ; ’),在上面的例子中就是“ls -l”;“;”在bash的环境下有特殊意义的,所以需要用反斜杠来转义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: