Find命令的一般形式为:
find pathname -options [-print -exec -ok]
参数说明如下:pathname:find命令所查找的目录路径。
-print:find命令将匹配的文件输出到标准输出。
-exec:find命令对匹配的文件执行该参数所给出的shell命令,在这之后的命令的形式为'coomand' {} \;,这里要注意{}+空格+\;
-ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
一,name选项
该选项用于根据文件名来查找。
在查找过程中需要用引号将文件名模式引起来,也就是说在文件名的部分是可以用模式串来匹配的,如
在当前目录下,查找文件名以一个大写字母开头的文件,可以用如下命令查找:
find ./ -name "[A-Z]*" -print
二,perm选项
该选项按照文件权限模式来查找文件,使用-perm选项。
如在当前目录下查找文件权限为644的文件,可以用:
find ./ -perm 644 -print
三,nouser和user选项
这两个选项用于按照文件属主查找文件,在命令中可以给出相应的用户名。例如在当前目录下查找属于xinyu的文件。
find ./ -user xinyu -print
为了查找那些账户已经被删除的用户的文件,可以用-nouser选项,这个选项不用用户名参数,如find ./ -nouser -print
与这两个选项相对应的另外两个用于组属主查找的选项是:group和nogroup,其用法和user,nouser一样。四,mtime选项
这个选项是按照文件的更改时间来查找文件,在我们做一些数据备份的时候,可能经常要删除几天以前的备份,只留下最近几天的备份,这时这个选项就有用了,或者说我们想删除好些个月以前的文件。这个选项可以用于查找N天以前的文件,或者是N天以内的文件,用+号和-号,这两个符号来限定,不用说就知道-号表示多少天以内,+号表示多少天以前了。
find ./ -mtime -6 -print 6天以内的文件 find ./ -mtime +6 print 6天以前的文件
五,newer选项有时我们并不想指定确定的多少天以前或者多少天以内,我们想查找哪些文件比某个指定的文件更新,或者哪些文件比某个指定的文件更旧。比如我们想查找比"mod_hash.c"更新的文件。
find ./ -newer mod_hash.c -print
可以用 ! -newer表示不比某个文件更新。