find 指令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了find 指令相关的知识,希望对你有一定的参考价值。
Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个很大的文件系统可能会花费很长时间。
<1>命令格式
find pathname -options [-print -exec -ok…]
<2>命令功能
用于在文件中查找文件,并作出相应的处理(可能访问磁盘)
<3>命令参数
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command ’ { } \; ,注意{ }和\;之间的空格。
<4>命令选项
-name 按照文件名查找文件
-perm 按照文件权限来查找文件
-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user 按照文件属主来查找文件
-group 按照文件所属的组来查找文件。
-nogroup 查找无有效所属组的文件,即该文件所属的组在/ etc/groups中不存在
-nouser 查找无有效属主的文件,即该文件的属主在/etc/ passwd中不存在。
-newer file1 ! file2 查找更改时间比文件file1新但比文 件file2旧的文件。
-type 查找某一类型的文件 诸如:b – 块设备文件 d – 目录 c – 字符设备文件
p – 管道文件 l – 符号链接文件 f – 普通文件
-size n: [c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth: 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统有关文件系统的信息。
-mount: 在查找文件时不跨越文件系统mount点。
-follow: 如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio: 对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
与时间有关的选项:-atime , -ctime ,-mtime
-mtime -n +n 按文件更改时间来查找文件,-n指n天以内,+n指n 天以前
-atime -n +n 按文件访问时间来查找文件,-n指n天以内,+n指n 天以前
-ctime -n +n 按文件创建时间来查找文件,-n指n天以内,+n指n 天以前
例如:
-newer file :file 为一个存在的档案,列出比 file 还要新的档案档名
-amin -n 查找系统中最后N分钟访问的文件
-atime -n 查找系统中最后n*24小时访问的文件
-cmin -n 查找系统中最后N分钟被改变文件状态的文件
-ctime -n 查找系统中最后n*24小时被改变文件状态的文件
-mmin -n 查找系统中最后N分钟被改变文件数据的文件
-mtime -n 查找系查找系统中最后n*24小时被改变文件数据的文件
总结:min是分钟,time是小时,a访问,c改变状态,m改变数据。
示例:
(1)查找当前目录下文件名为code的目录
find . -name code -print
./code
(2)在目录中查找更改时间在5日以前的文件并删除它们:
find -atime +5 -exec rm {} \;
(3)查找当前所有目录并排序
find / -type d |sort
(4)查找所有目录名称中按照”.log”结尾的目录
find / -type d -name "*.log"
(5)查找系统中最近5天访问的文件
find -atime -5
(6)查找系统中最近5分钟访问的目录
find -amin -5
(7) 查找当前目录下所有权限为755的文件,并设置成777
find . -perm 755 -exec chmod 777 {} \;
本文出自 “追” 博客,请务必保留此出处http://10802712.blog.51cto.com/10792712/1775410
以上是关于find 指令的主要内容,如果未能解决你的问题,请参考以下文章