4.使用user和nouser选项
如果希望按照文件属主查找文件,可以给出相应的用户名。例如,在 $ H O M E目录中查找文件属主为d a v e的文件,可以用:$ find ~ -user dave -print在/ e t c目录下查找文件属主为u u c p的文件:$ find /etc -user uucp -print为了查找属主帐户已经被删除的文件,可以使用 - n o u s e r选项。这样就能够找到那些属主在/ e t c / p a s s w d文件中没有有效帐户的文件。在使用 - n o u s e r选项时,不必给出用户名;f i n d命令能够为你完成相应的工作。例如,希望在/ h o m e目录下查找所有的这类文件,可以用:$ find /home -nouser –print
5.使用group和nogroup选项
就像u s e r和n o u s e r选项一样,针对文件所属于的用户组, f i n d命令也具有同样的选项,为了在/ a p p s目录下查找属于a c c t s用户组的文件,可以用:$ find /apps -group accts -print要查找没有有效所属用户组的所有文件,可以使用 n o g r o u p选项。下面的f i n d命令从文件系统的根目录处查找这样的文件$ fine/-nogroup-print
6.按照更改时间查找文件
如果希望按照更改时间来查找文件,可以使用m t i m e选项。如果系统突然没有可用空间了,很有可能某一个文件的长度在此期间增长迅速,这时就可以用 m t i m e选项来查找这样的文件。用减号-来限定更改时间在距今 n日以内的文件,而用加号 +来限定更改时间在距今n日以前的文件。希望在系统根目录下查找更改时间在5日以内的文件,可以用:$ find / -mtime -5 -print为了在/ v a r / a d m目录下查找更改时间在3日以前的文件,可以用:$ find /var/adm -mtime +3 -print
7.查找比某个文件新或旧的文件
如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用 - n e w e r选项。它的一般形式为:newest_file_name ! oldest_file_name其中,!是逻辑非符号。这里有两个文件,它们的更改时间大约相差两天。下面给出的f i n d命令能够查找更改时间比文件a g e . a w k新但比文件b e l t s . a w k旧的文件:find . –newer age.awk ! –newer belts.awk –exec ls –l {} \;
如果想使用f i n d命令的这一选项来查找更改时间在两个小时以内的文件,除非有一个现成的文件其更改时间恰好在两个小时以前,否则就没有可用来比较更改时间的文件。为了解决这一问题,可以首先创建一个文件并将其日期和时间戳设置为所需要的时间。这可以用 t o u c h命令来实现。假设现在的时间是2 3 : 4 0,希望查找更改时间在两个小时以内的文件,可以首先创建这样一个文件:touch –t 08031010 dstamp
ls –l dstamp
一个符合要求的文件已经被创建;这里我们假设今天是五月四日,而该文件的更改时间
是10 : 1 0,比现在刚好早两个小时。现在我们就可以使用f i n d命令的- n e w e r选项在当前目录下查找所有更改时间在两个小时以内的文件:$ find . -newer dstamp -print8.使用type选项
U N I X或L I N U X系统中有若干种不同的文件类型,如果要在/ e t c目录下查找所有的目录,可以用:$ find /etc -type d -print为了在当前目录下查找除目录以外的所有类型的文件,可以用:$ find . ! -type d -print为了在/ e t c目录下查找所有的符号链接文件,可以用:$ find /etc -type l –print
9.使用size选项
可以按照文件长度来查找文件,这里所指的文件长度既可以用块( b l o c k)来计量,也可以用字节来计量。以字节计量文件长度的表达形式为 N c;以块计量文件长度只用数字表示即可。就我个人而言,我总是使用以字节计的方式,在按照文件长度查找文件时,大多数人都喜欢使用这种以字节表示的文件长度,而不用块的数目来表示,除非是在查看文件系统的大小,因为这时使用块来计量更容易转换。为了在当前目录下查找文件长度大于1 M字节的文件,可以用:$ find . -size +1000000c -print为了在/ h o m e / a p a c h e目录下查找文件长度恰好为1 0 0字节的文件,可以用:$ find /home/apache -size 100c -print为了在当前目录下查找长度超过1 0块的文件(一块等于5 1 2字节) ,可以用:$ find . -size +10 –print