【每天一点linux】find命令的详细说明
2017-03-30 18:30
405 查看
在linux下有一个命令的功能相当强大,这个命令就是find。它主要是在目录结构中搜索文件,并执行指定的操作。
命令参数:分为四种类型,分别是与时间有关、与用户或者用户组有关、与文件权限及名称有关、其他的操作
-ctime(change time ):对文件inode最后修改的时间
-mtime(modify time):文件最后一次修改时间
例1.我们在这个目录下建一个test,然后查看这个test的属性。
然后通过重定向写入“hello”再观察它的ACM时间,这时会发现它的mtime和ctime都发生了改变。用cat获取内容后,再观察,此时它的atime也发生了改变。
好的,说完了这三个时间,我们接着继续说find的时间参数是怎么使用的。在find中,可以用 find -atime/-ctime/-mtime +n/-n来查看在这几个时间在n的改变。下来,我们以-mtime为例。
例2.将过去code目录下24小时内有改动的文件列出。
命令:find -mtime 0
-mtime n:n是数字,在n天之前所在的“一天之内”被更改过的文件。
-mtime +n:列出在n天之前(不含n天本身)的被更改过的时间。
-mtime -n:列出在n天之内(包含n天本身)的被更改过的时间。
-newer file:file为另一个存在的文件夹,列出比file还要更新的文件名。
-group groupname 按所属组名来查找
-nogroup 查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser 查无有效属主的文件,即文件的属主在/etc/passwd中不存在
例3.查找在/home下面属于monster的文件。
命令:find /home -user monster
例4.查找系统中不属于任何人的文件
命令:find / -nouser
-size [+/-] SIZE:查找比SIZE大或者小的文件。
SIZE可以是:c :代表byte;k:代表1024byte。
type TYPE:查找文件类型为TYPE的。TYPE类型包括:一般正规文件(f)、设备文件(b、c)、目录(d)、连接文件(l)、socket(s)及FIFO(p)等属性。
-perm mode:查找文件权限刚好为mode的文件。
-perm -mode:查找文件权限包括mode的文件。比如,我们查找文件权限为0744的文件,权限为4755的文件也会被列出来。
-perm +mode:查找文件权限包含任一权限为mode的文件。比如我们查找权限为-rwxr-xr-x的文件,权限为-rw——-的文件也会被列出来,因为有-rw……权限。
例5.查找当前目录下以.log结尾的文件。
命令:find . -name “*.log”
例6.查找当前目录下,权限为777的文件。
命令: find -perm 777
例7.查找当前目录下以.log结尾的普通文件。
命令: find . -type f -name “*.log”
例8.查找当前目录下大于1k的文件。
命令:find -size +1000c -print
-print:将结果打印到屏幕上。
例9.将当前目录下的普通文件使用ls -l命令列出。
命令: find . -type f -exec ls -l {} \;
在上述命令中,{}代表“由find找到的内容“,这个结果放在{}这个位置中;-exec一直到’\;’是关键字,代表find的额外命令的开始(-exec)到结束(‘\ ; ’),在上面的例子中就是“ls -l”;“;”在bash的环境下有特殊意义的,所以需要用反斜杠来转义。
命令格式:find [path] [option] [action]
命令功能:用于在文件树中查找文件,并做出相应的处理(可能存在访问磁盘的行为)命令参数:分为四种类型,分别是与时间有关、与用户或者用户组有关、与文件权限及名称有关、其他的操作
1.与时间有关的参数
-atime(access time ):文件最后一次访问时间-ctime(change time ):对文件inode最后修改的时间
-mtime(modify time):文件最后一次修改时间
例1.我们在这个目录下建一个test,然后查看这个test的属性。
然后通过重定向写入“hello”再观察它的ACM时间,这时会发现它的mtime和ctime都发生了改变。用cat获取内容后,再观察,此时它的atime也发生了改变。
好的,说完了这三个时间,我们接着继续说find的时间参数是怎么使用的。在find中,可以用 find -atime/-ctime/-mtime +n/-n来查看在这几个时间在n的改变。下来,我们以-mtime为例。
例2.将过去code目录下24小时内有改动的文件列出。
命令:find -mtime 0
-mtime n:n是数字,在n天之前所在的“一天之内”被更改过的文件。
-mtime +n:列出在n天之前(不含n天本身)的被更改过的时间。
-mtime -n:列出在n天之内(包含n天本身)的被更改过的时间。
-newer file:file为另一个存在的文件夹,列出比file还要更新的文件名。
2.与用户或用户组有关的参数
-user username 按照文件的用户来查找-group groupname 按所属组名来查找
-nogroup 查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser 查无有效属主的文件,即文件的属主在/etc/passwd中不存在
例3.查找在/home下面属于monster的文件。
命令:find /home -user monster
例4.查找系统中不属于任何人的文件
命令:find / -nouser
3.与文件权限及名称有关的参数
-name fimename:查找文件名为filename的文件-size [+/-] SIZE:查找比SIZE大或者小的文件。
SIZE可以是:c :代表byte;k:代表1024byte。
type TYPE:查找文件类型为TYPE的。TYPE类型包括:一般正规文件(f)、设备文件(b、c)、目录(d)、连接文件(l)、socket(s)及FIFO(p)等属性。
-perm mode:查找文件权限刚好为mode的文件。
-perm -mode:查找文件权限包括mode的文件。比如,我们查找文件权限为0744的文件,权限为4755的文件也会被列出来。
-perm +mode:查找文件权限包含任一权限为mode的文件。比如我们查找权限为-rwxr-xr-x的文件,权限为-rw——-的文件也会被列出来,因为有-rw……权限。
例5.查找当前目录下以.log结尾的文件。
命令:find . -name “*.log”
例6.查找当前目录下,权限为777的文件。
命令: find -perm 777
例7.查找当前目录下以.log结尾的普通文件。
命令: find . -type f -name “*.log”
例8.查找当前目录下大于1k的文件。
命令:find -size +1000c -print
4.其他的操作
-exec command: command为其他的命令,-exec后面可以接其他命令来处理查找到的结果。-print:将结果打印到屏幕上。
例9.将当前目录下的普通文件使用ls -l命令列出。
命令: find . -type f -exec ls -l {} \;
在上述命令中,{}代表“由find找到的内容“,这个结果放在{}这个位置中;-exec一直到’\;’是关键字,代表find的额外命令的开始(-exec)到结束(‘\ ; ’),在上面的例子中就是“ls -l”;“;”在bash的环境下有特殊意义的,所以需要用反斜杠来转义。
相关文章推荐
- 每天一个linux命令(20):find命令之exec
- 每天一个linux命令(22):find 命令的参数详解
- 每天一个linux命令(19):find 命令概览
- 每天学一点linux:Centos中yum安装和卸载软件的命令
- 每天一个linux命令(20):find命令之exec
- 每天一个linux命令(21):find命令之xargs
- 每天一个linux命令(20):find命令之exec
- 每天一个linux命令(20):find命令之exec
- 每天一个linux命令(20):find命令之exec
- 每天学一点linux:date,cal日期和时间的命令
- 每天一个linux命令(20):find命令之exec
- 每天一个linux命令(22):find 命令的参数详解
- 每天一个linux命令(20):find命令之exec
- 每天一个linux命令(21):find命令之xargs
- 每天一点Linux --- type命令的用法
- 每天一个linux命令(21):find命令之xargs
- 每天一个linux命令(20):find命令之exec
- 每天一个linux命令(21):find命令之xargs
- 每天一个linux命令(21):find命令之xargs
- 每天一个linux命令(22):find 命令的参数详解