linux-----强大的find

来源:互联网 发布:知世与艾利欧(艾知) 编辑:程序博客网 时间:2024/05/03 08:50

j_0029.gif我又回来了。哈哈。今天我们来说一下linux中的另一个强大的find命令,灰常重要,灰常重要,灰常重要。显而易见,find就是对某一个文件或者目录的查找喽。但是它的一个显著的特点就是:一般放在后台执行,从整个文件系统中遍历,当然这样的话,它查找的速度就相对比较慢了。

find也有很多的命令,我来一一介绍一下吧。

1.find + pathname(想要查找的目录)

eg1:

wKioL1c1-s-wUqpfAAAw8pO5KtY998.png

find test:找出test目录下的所有文件

eg2:

wKiom1c9FZ_SpJaPAAAna_zHwvI551.png


find /home -path "*c":查找出/home目录下以c结尾的文件


eg3:

wKiom1c9YiOg9SEbAABUc8PKOdo828.png


find ./ -name *.txt:找出当前路径下文件后缀为.txt的文件


eg4:

wKiom1c9ZKqij7FfAABjVzGc7Ms254.png


find ../ -path '../test*' -name *.txt:在上级目录下名为'test'及子目录下找出以.txt后缀的文件

find ../ -path '../test*' -name xu:在上级目录下名为'test'及子目录下找出名为xu的文件


2.find + -user + 文件属主(按文件属主查找文件)

eg:

wKiom1c9EQLgGyF3AABtpnQ3SDU239.png

find -user root:找出user为root权限的所有文件


3.find + -perm + 文件权限(按文件权限查找文件)

eg:

wKiom1c9FEeRi8fPAABWcGWVsyA377.png

find -perm 644:权限为644的文件

find -perm 755:权限为755的文件


4.find + -group + 权限(按所属组的权限查找文件)

eg1:

wKioL1c9aAHgp7DhAACyO6vTCMw827.png


find -group root:找出所属组权限为root的文件

find -group admin:找出所属组权限为admin的文件


5.path与prune的结合(prune是删除,减去的意思哦)

wKioL1c9afyDfmAuAAB87334LrI894.png

find ./ -path './xu.txt*' -a -prune -o -name *.txt -print:除去xu.txt及子目录下找后缀名为.txt的文件

find ./ -path './xu*' -a -prune -o -name *.txt -print:除去xu及子目录下找后缀名为.txt的文件,虽然这里没有直接包含xu.txt,但是xu*的意思包含了.txt的文件,所以没有找到,当然就没有显示出

find ./ -path './test*' -a -prune -o -name *.txt -print:除去test及子目录下找后缀名为.txt的文件,不包含xu.txt,所以就正确的输出了后缀名为.txt的文件


6.find + -mtime + -n(+n)  按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime选项,但它们都和-mtime选项相同。

atime的意思是access time,即文件的最近的一次访问时间,+n意思为查找n天以前的文件,-n为查找n天以内的文件。

find命令加选项-ctime,这里的-ctime是change time。

wKiom1c9bf-xqOifAAA3H5ar3H4135.png

find -mtime -1:找出一天以内的文件

find -mtime +1:找出距现在一天以前的文件


7.-nogroup  查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。

wKioL1c9eZ-BE22EAADnjTTSkh4565.png



groupadd test:创建一个组test。

chgrp test test.c:改变所属组。

groupdel test:删除test组,使其变为无效组。

find -nogroup:找到无效组的文件。

8.find + -nouser   查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。

wKiom1c9e7TReor7AACk4iFq2i4859.png


useradd ooo:添加用户。

chown ooo test.c:修改test.c的用户名为ooo。

userdel ooo:删除用户ooo,使其成为无效的用户。

find -nouser:查找无效的用户。


9.find + -newer file1  查找更改时间比文件file1新的文件。

eg1:

wKiom1c9qDuCkVJ2AABRf6l-5c4140.png


eg2:


wKiom1c-vsXQsYbhAAFsR9sE90g967.png

 

 find . -newer file1 ! -newer file2:找出比file1新,比file2旧的文件。

10.find + -type  查找某一类型的文件,诸如:

b -块设备文件。

d - 目录。 

c - 字符设备文件。

p - 管道文件。 

l - 符号链接文件。

f - 普通文件。 

wKiom1c9x_fAcfD4AAEjYDHVc40426.png


11.find + -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。


wKiom1c9yJvypadeAAApICXUnrw463.png


12.find + -mount:在查找文件时不跨越文件系统mount点。


wKioL1c9ycXAvEoeAAAdbgFPEo0302.png


13.find + -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。


wKioL1c9yhvgWYsCAAAjfrZOw7Y989.png

 

今天的find就说到这里咯。当然还有些没有写上去,完了还会补充的哦。大家有什么补充的,意见或建议都可以提哦,也可以直接评论。希望亲们多多关注哦。j_0059.gifj_0059.gif



2 0
原创粉丝点击