Linux命令-find
linux下的find指令用于在目录结构中搜索文件,并执行指定的操作。它提供了相当多的查找条件,功能很强大。只要用户具有相应的权限,即使在系统中包含有网络文件系统(NFS),find命令在该文件系统中同样有效。在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统(30G字节以上)可能会花费很长的时间。
1.命令格式
find pathname -options [-print -exec -ok ...]
2.命令功能
用于在文件树中查找文件,并做相应的处理(可能访问磁盘)。
3.命令参数
pathname:要查找的目录路径。eg: " . " 表示当前目录 “ / ”表示系统根目录
-print:将find找到的文件输出到标准输出。
-exec:对找到的文件执行exec这个参数所指定的shell命令,相应的形式为:-exec command {} \; 将查到的文件进行command操作,“ {} ”就代替查到的文件,注意”{}”和”\”之间有一个空格。
-ok:和-exec的作用相同,只不过-ok更加安全一点,在执行每一个命令之前,都会让用户确定是否执行。
-exec:对找到的文件执行exec这个参数所指定的shell命令,相应的形式为:-exec command {} \; 将查到的文件进行command操作,“ {} ”就代替查到的文件,注意”{}”和”\”之间有一个空格。
-ok:和-exec的作用相同,只不过-ok更加安全一点,在执行每一个命令之前,都会让用户确定是否执行。
4.命令选项
-name 按照文件名查找文件
-perm 按照文件权限查找文件
-prune 使用这一选项可以使find命令不在当前指定目录中查找,若同时使用-depth选项,那么-prune将被find命令忽略。
-user 按照文件所属主查找文件
-group按照文件所属组来查找文件
-mtime -n +n 按照文件更改时间查找文件
-n 表示文件更改时间距现在n天以内
+n表示文件更改时间距现在n天以上
-atime 按照最近一次存取的时间查找文件
find pathname -atime +n //表示n天前存取过的文件
find pathname -atime -n //表示以当前时间为起点前n天内存取过的文件
-amin
find pathname -amin +n //表示n分钟前存取过的文件
find pathname -amin -n //表示以当前时间为起点前n分钟内存取过的文件
find pathname -atime -n //表示以当前时间为起点前n天内存取过的文件
-amin
find pathname -amin +n //表示n分钟前存取过的文件
find pathname -amin -n //表示以当前时间为起点前n分钟内存取过的文件
-ctime 按照最近一次更改的时间查找文件
find pathname -ctime +n //表示n天前更改 过的文件
find pathname -ctime -n //表示以当前时间为起点前n天内更改 过的文件
-cmin
find pathname -cmin +n //表示n分钟前更改过的文件
find pathname -cmin -n //表示以当前时间为起点前n分钟内更改 过的文件
find pathname -ctime -n //表示以当前时间为起点前n天内更改 过的文件
-cmin
find pathname -cmin +n //表示n分钟前更改过的文件
find pathname -cmin -n //表示以当前时间为起点前n分钟内更改 过的文件
-nogroup 查找无有效所属组的文件
find pathname -nouser
-nouser 查找无有效属主的文件
find pathname -nouser
-newer file1查找更改时间比文件file1距离当前时间更近的文件
-type 查找某一类型的文件
d -目录
l -符号链接文件
b 块设备文件
find pathname -type b
c 字符设备文件
find pathname -type c
p 管道设备文件
find pathname -type p
s 套接字文件
find pathname -type s
find pathname -type b
c 字符设备文件
find pathname -type c
p 管道设备文件
find pathname -type p
s 套接字文件
find pathname -type s
-size n : [c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
-maxdepth n : 查找深度距离当前目录最多n个子目录深度的文件
-mindepth n 查找深度距离当前目录至少n个子目录深度的文件
-empty 查找路径下为空的文件或文件夹
-link n :硬连接连接数等于n的文件或目录
-n硬连接连接数小于n的文件或目录
+n硬连接连接数大于n的文件或目录
-a、-o,-not(也就是与、或、非)
-a:连接两个不同的条件(两个条件必须同时为真)
-o:连接两个不同的条件(两个条件只要满足一个即可)
-not:对条件进行取反
查找完成之后的操作
-exec command {} \;: 其中,”{}”就代表查找之后返回的文件。
-ok command {} \;-ok相对于-exec而言更安全一点,会让用户确定所要执行的操作。