find顾名思义就是查找,Linux下find命令提供相当多的查找条件,因此功能比较强大,可以在众多文件或目录下查找你想要的任何文件或目录。
--------------------------------------- find pathname-options [-print -exec -ok]。find path -option [ -print ] [ -exec -ok command ] {} \。# find是linux shell中的一个查找命令,其语法是:find path option [-print -exec -ok]。
在/home键入pap命令,系统首先在/home目录下(即当前路径)查找关于 b 的内容,如果没有在/liheng/wang目录下查找关于b的内容。不管当前路径是什么,如果想要在自己的根目录$home中查找文件名符合*.txt的文件,使用~作为 'pathname'参数,波浪号~代表了你的$home目录。 不管当前路径是什么,如果想要在自己的根目录$home中查找文件名符合*.log的文件,使用~作为 'pathname'参数,波浪号~代表了你的$home目录。
-print: find命令将匹配的文件输出到标准输出。
这里需要注意一个叫“run-parts”的参数,如果加上这个参数,代表执行文件夹中的命令,而不是执行脚本或者命令,如果不加则代表执行命令或者脚本。在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行。在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。-ok和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。虽然程序提示执行成功,但是执行ls -lia命令发现这两个命令根本没起作用。
find常用命令格式:
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username#按文件属主来查找
-group groupname#按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查GIN: 0px">
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2#找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件