find命令是在目录结构中搜索文件并执行指定的操作
find命令格式:
find pathname -options[-print,exec,-ok ...]
pathname:find命令所查找的目录路径,用.表示当前目录,/表示系统根目录
-print:find命令将匹配的文件输出到标准输出
-exec:find命令对匹配的文件执行该参数所给出的shell命令,相应命令形式为‘command’ { } \;
-ok:与exec作用相同,只不过以一种更安全的模式来执行该参数做给出的shell命令,在执行每个命令前都会提示,让用户来确定是否执行。
find的一些命令选项及截图~
-name:按文件名查找文件
-perm:按照文件权限来查找文件
-prune:在查找文件时希望忽略某个目录,因为你知道那个目录中没有你所要查找的文件,那么可以使用-prune选项来指出需要忽略的目录。它使find命令不在当前指定的目录中查找,若同时使用-depth选项,则-prune将被find命令忽略
-user:按照文件属组来查找文件
-nouser:查找无有效属主的文件。即文件属主在/etc/passwd中不存在。为了查找属主帐户已经被删除的文件,可以使用-nouser选项。这样就能够找到那些属主在/etc/passwd文件中没有有效帐户的文件。在使用-nouser选项时,不必给出用户名;
在/home目录下查找这类文件
-group:按照文件所属的组来查找文件
-nogroup:查找无有效所属组的文件,即该文件所属组在/ect/groups 中不存在
-newer file1 !file2:查找更改时间比文件file1新但比文件file2旧的文件
-type:查找某一类型的文件,如:
b:块设备文件
d:目录
c:字符设备文件
p:管道文件
l:符号链接文件
f:普通文件
-size n:查找文件长度为n块的文件,带有c时表示文件长度以字节计
-depth:在查找文件是,首先查找当前目录中的文件,然后再在其子目录中查找
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息
-mount:在查找文件时不跨越文件系统mount点,在当前的文件系统中查找文件(不进入其他文件系统),可以使用find命令的mount选项。
-follow:如果find命令遇到符号链接文件就跟踪至链接所指向的文件
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中
-mtime -n +n 按照文件的更改时间来查找文件。
-n表示文件更改时间在n天以内;
+n表示文件更改时间距现在n天以前
-atime
-ctime都与-m time选项相同
例子
1.在当前/code目录中查找更改时间在5日内的文件并删除它们
2、用find命令查找文件大小为XX的文件(例如一个文件5556字节)可以写成:
3、在当前目录下查找小于500k大于50k的文件
4、查找/目录下文件名为test的目录
5、查找当前所有目录并排序
6、查找所有目录名称中按照“.log”结尾的目录
7、查找文件大小为10k的文件并删除