Linux中find命令使用


Find命令的一般形式为:

  1. find pathname -options [-print -exec -ok]  
参数说明如下:

pathname:find命令所查找的目录路径。

-print:find命令将匹配的文件输出到标准输出。

-exec:find命令对匹配的文件执行该参数所给出的shell命令,在这之后的命令的形式为'coomand' {} \;,这里要注意{}+空格+\;

-ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

一,name选项

该选项用于根据文件名来查找。

在查找过程中需要用引号将文件名模式引起来,也就是说在文件名的部分是可以用模式串来匹配的,如

在当前目录下,查找文件名以一个大写字母开头的文件,可以用如下命令查找:

  1. find ./ -name "[A-Z]*" -print  

二,perm选项

该选项按照文件权限模式来查找文件,使用-perm选项。

如在当前目录下查找文件权限为644的文件,可以用:

  1. find ./ -perm 644 -print  

三,nouser和user选项

这两个选项用于按照文件属主查找文件,在命令中可以给出相应的用户名。例如在当前目录下查找属于xinyu的文件。

  1. find ./ -user xinyu -print  
为了查找那些账户已经被删除的用户的文件,可以用-nouser选项,这个选项不用用户名参数,如
  1. find ./ -nouser -print  
与这两个选项相对应的另外两个用于组属主查找的选项是:group和nogroup,其用法和user,nouser一样。

四,mtime选项

这个选项是按照文件的更改时间来查找文件,在我们做一些数据备份的时候,可能经常要删除几天以前的备份,只留下最近几天的备份,这时这个选项就有用了,或者说我们想删除好些个月以前的文件。这个选项可以用于查找N天以前的文件,或者是N天以内的文件,用+号和-号,这两个符号来限定,不用说就知道-号表示多少天以内,+号表示多少天以前了。

  1. find ./ -mtime -6 -print 6天以内的文件  
  2. find ./ -mtime +6 print 6天以前的文件  
五,newer选项

有时我们并不想指定确定的多少天以前或者多少天以内,我们想查找哪些文件比某个指定的文件更新,或者哪些文件比某个指定的文件更旧。比如我们想查找比"mod_hash.c"更新的文件。

  1. find ./ -newer mod_hash.c -print  
可以用 ! -newer表示不比某个文件更新。
  • 1
  • 2
  • 下一页

相关内容