Linux中find指令在目录结构中搜索文件,并执行指定操作,find指令有很多查找条件,下面我们来了解一下。
1,命令格式:find pathname -option[-print -exec -ok …]
2:命令功能:用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
3:命令参数:
pathname : find命令所查找的目录路径
-print : find命令将匹配的文件输出到标准输出。
-exec :find命令对匹配的文件执行该参数所给出的shell命令。
4:命令选项:
-name 按照文件名查找文件。
如上图,我们查找文件file,它的路径为./dir1/file
-perm 按照文件权限来查找文件。
如上图我们查找了只可读权限的文件,我们查到了文件file。
-user: 按照文件属主来查找文件。
如上图:我们在dir1中查找文件属主为zhuohai的文件,同时我们用ll指令查看文件信息,看到以上文件属主确实都是zhuohai。
-group 按照文件所属的组来查找文件。
如上图:我们在dir1中查找文件所属组为zhuohai的文件,同时我们用ll指令查看文件信息,看到以上文件所属组确实都是zhuohai。
-mtime -n +n : 按照文件的更改时间来查找文件
(-n 表示文件更改时间距现在n天以内,+n 表示文件更改时间距现在n天以前)(时间还有ctime,atime. 用法与mtime类似)
如上图我们查看了两天内所更改的文件,
+n用法类似 -n。
-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups 中不存在。
-nouser 查找无有效属主的文件,即该文件的属主在/etc/groups 中不存在。
上图是 -nogroup 与 -nouser的用法(由于我的Linux使用不久,所以没有无有效的所属组与属主的文件)
-newer 文件名1 :查找更改时间比文件(文件名1)新,
! -newer 文件名2 : 查找更改时间比文件(文件名2)旧的文件。
-newer 文件名1 ! -newer 文件名2 :查找更改时间比文件(文件名1)新但比文件(文件名2)旧的文件。
-type 查找某⼀类型的文件。
诸如:
b - 块设备⽂件。
d - 目录。
c - 字符设备文件。
p - 管道⽂件。
l - 符号链接文件。
f - 普通⽂件。
其他用法类似
-size n: [c] 查找文件长度为n块的文件,带有c时标识 文件长度以字节计(-n:小于n块的文件,+n:大于n块的文件)
Linux 用find命令查找文件大⼩为XX的⽂件的办法
例如:一个文件5556字节,可以这样写
find /root -size -5557c -size +5555c -exec ls -ld {} \;
即查找大于5555字节⼩于5557字节的文件
以上查找的是/root 目录
find /root -size -500K -size +50K -exec ls -ld {} \;
查找 小于500K,大于50K的文件
find指令在Linux中很重要,所以我们还是要熟练掌握。
Linux初级学者,希望得到指导谢谢。