linux 中find 常用示例解析
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path…] [expression]
其实[-H] [-L] [-P] [-D debugopts] [-Olevel]这几个选项并不常用(至少在我的日常工作中,没 有用到过),上面的find命令的常用形式可以简化为 find [path…] [expression] find 命令的参数: path:find命令查找文件的目录路径 例如:.表示当前路径,/表示根路径 expression:expression 可以分为–“options[-print-exec-ok…] -options,find命令的常用选项, -print,find命令将匹配的文件输出到标准输出 -exec, find命令对匹配的文件执行该参数所给出的shell命令,相应命令形为‘command’{}\
例如:find ./ -size 0 -exec rm {} \; 删除当前目录下文件大小为零的文件。
-ok,和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在 执行每一个命令之前,都会给出提示,让用户来确定是否执行。 find . -name "*.conf" -mtime +5 -ok rm { } \; 在当前目录中查找所有文件名 以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示 Find命令的常用选项和实例 -name 按文件名字查找 例如:find /etc -name "filename" 在目录etc下查找文件名为filename的文件 -perm 按照文件权限来查找文件 例如:find . -perm 755 -print 在当前目录中查找文件权限为755的文件 -user 按照文件属主来查找文件 例如:find ~ -user test -print 在$HOME目录中查找属主为test的文件 -group 按照文件属主来查找文件 例如:find /etc -group jere -print 在/etc 目录中查找属于jere用户组的文件 -mtiem -n +n 按照文件的的更改时间来查找文件,-n表示文件更改是啊就距现在n天以内, +n 表示文件的更改时间距现在n天以前。 例如:find / -mtime -5 -print 在系统根目录下查找更改时间再5日内的文件 find /var/adrm -mtime +3 -print 在/var/adrm 下更改时间大于三天的文 件 -nogroup 查找无有效所属组的文件,即该文件所属组在/etc/groups 中不存在 例如:find / -nogroup -print -nouser 查找无有效属主的文件,即在该文件的属主宰/etc/passwd 中不存在 例如:find / -nouser -print -newer file1 !file2 查找更改时间比文件file1新但是比文件file2旧的文件 -type 查找某类型的文件, 诸如: b-块设备文件 d-目录 c-字符设备文件 p-管道 文件 l-符号链接文件 f-普通文件 例如:find /etc -type d -print 在/etc目录下的所有的目录 find . !-type d -pint 在当前目录下查找除目录以为的所有文件 -size n: 查找文件长度为n块的文件,带有c时表示文件长度以字节计 例如:find -size +1000000c -print 在当前目录下查找文件长度大于1M的文件 find /home/apache -size 100c -pint 在/home/apache/目录下查找文件长度恰好是100字节的文件 find . -size +10 -print 在当前目录中查找文件大小为10块的文件(一块512字节) -depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找 例如:find / -name ”nginx“ -depth -print 他将首先匹配所有的文件,然后再进入子目录查找 -mount 在查找文件时不跨越文件系统mount点 例如:find 。 -name ”tst“ -mount -print 从当前目录中开始查找位于本文件系统上的tst文件,不跨越文件系统 -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。