Linux中find指令

一 .功能

find命令在目录结构中搜索文件,并执行指定的操作

二.格式

find pathname -options [-print -exec -ok …]

pathname: find命令所查找的目录路径。例如用.来表示当前目

录,用/来表示系统根目录。

-exec: find命令对匹配的文件执⾏行该参数所给出的shell命

令。相应命令的形式为’command’ { } \;注意{ }和\;

之间的空格。

-ok: 和-exec的作⽤用相同,只不过以一种更为安全的模式来执⾏行

该参数所给出的shell命令,在执行每一个命令之前,都会给出提

示,让用户来确定是否执行。

三.使用

1.按照文件名查找文件

find -name april* 在当前目录下查找以april开始的文件

例如:我们要在wrngt目录下查找study此文件

这里写图片描述

即使用命令 find -name study 就可找到image这里写图片描述

在用户主目录下查找并列举出来:

find study -name test.c -exec ls -l {} \;

这里写图片描述

2.按照文件权限查找文件

使用命令:find -perm + 权限值

例如:

这里写图片描述

查找到并执行相应的操作:例如列举出来

find ~/study -perm 664 -exec ls -l {} \;

这里写图片描述

3.按照文件修改时间来查找文件

命令: find -mtime -n 或者 +n

按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前(天数为单位)

例如:find -mtime -3

这里写图片描述

find -mtime +3

这里写图片描述

类似的还有下面两个用法相同:

atime:访问时间(accesstime),指的是文件最后被读取的时间,可以使用touch命令更改为当前时间;

ctime:变更时间(changetime),指的是文件本身最后被变更的时间,变更动作可以使chmod、chgrp、mv等等;

但是假如我们要找某个特定的时间段对文件进行的改变,该如何操作呢??

举个例子:现在是 2017年3月25日14点十分,我们要系统对2017年3月25日14点00分到14点05分之间对那些文件有修改查找出来,我们可以执行下列命令:

find / -mmin -10 -mmin +5

这里写图片描述

问题又来了,我们可以找到了在某一段时间所修改过的文件,那么如何删除它呢??

假设现在在/logs..目录中查找更改时间在5日以前的.文件并删除它们:$ find ~/study -type f -mtime -1 -exec rm -f {} \;

这里写图片描述

4.按照文件属组来查找

命令:find ~/ -user root -exec ls -ld {} \;

这里写图片描述

相类似的还有按照文件所属的组来查找文件(将user换为group即可)。

5.按照文件类型查找:

b - 块设备文件

这里写图片描述

d - 目录。

这里写图片描述

f - 普通文件。

这里写图片描述### 类似还有许多…

c - 字符设备文件。

p - 管道文件。

l - 符号链接文件。

6.-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

find -depth -name test.c

这里写图片描述

7.查找文件大小为XX的文件的办法

命令 find /root -size -5557c -size +5555c -exec ls -ld {} \;

这里写图片描述

要想熟练使用find命令,这些不够,还需要平时多多练习。。。查阅更多资料。。。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值