6.find命令详解

2018-01-22  本文已影响0人  不安分的情绪

find命令用来在指定目录下查找文件。任何位于参数前的字符串都会被是视为查找的目录。如果使用该命令时,不设置任何参数mfind将在当前目录下查找子目录与文件,并且将找到的子目录与文件进行显示。

语法

find [option]  ... [查找路径] [查找文件] [处理动作]

选项

实例:想要排除temp和temp2这两个目录

# find /tmp \( -path /tmp/dir1 -o -path /tmp/dir2  \) -prune -o -mtime -1 -print 

查找条件

根据文件名查找

根据属主、属组查找

根据文件类型查找

-type TYP:TYPE文件类型(f、d、l、s、b、c、p)

根据文件大小来查找

根据时间戳

根据权限查找

处理动作

注意:find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令;有些命令不能接受过多参数,此时命令执行可能会失败;另一种方式可规避此问题:find | xargs COMMAND

练习题

1、查找/var目录下属主为root,且属组为mail的所有文件或目录;

# find /var -user root -group mail

2、查找/usr目录下不属于root、bin或hadoop的所有文件或目录;

# find /usr -not -user root -a -not -user bin -a -not -user hadoop
# find /usr -not \( -user root -o -user bin -o -user hadoop \)

3、查找/etc目录下最周一周内其内容修改过,同时属主不为root,也不是hadoop的文件或目录;

# find /etc -mtime -7 -a -not -user root -a -not -user hadoop
# find /etc/ -mtime -7 -a -not \( -user root -o -user hadoop \)

4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件或目录;

# find / -nouser -a -nogroup -a -atime -7

5、查找/etc目录下大于1M且类型为普通文件的所有文件;

# find /etc -size +1M -type f

6、查找/etc目录下所有用户都没有写权限的文件;

# find /etc -not -perm /222

7、查找/etc目录下至少有一类用户没有执行权限的文件;

# find /etc -not -perm -111

8、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件;

# find /etc/init.d -perm -113
上一篇下一篇

猜你喜欢

热点阅读