Linux find命令

Linux下 find 命令在目录结构中搜索,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能强大。其选项也很多。

1.命令格式:find pathname -options [-print -exec -ok ...] 注意:每一个选项前面跟随一个横杠-

2.命令功能:根据条件查找,并作出相应的处理(可能访问磁盘)

3.命令参数:pathname: find命令所查找路径;

目录介绍:.   ./  为当前目录 ,

/   $HOME  ~ 为根目录及以下相当于所有目录

 ..   ../为父目录 

指定多个目录 $ind /usr /home /tmp -name "*.test";在 /kk/tt/file三个目录中查找以.test结尾的文件

 
-print: find命令将匹配的⽂件输出到标准输出;

 
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { }空格 \;


-ok: 和-exec的作⽤相同,在执行前询问用户是否确定执行;

4.命令选项:

-name  按照指定文件名查找 ,查找时文件名大小写敏感(-iname 不区分大小写),只能搜索到文件名,如果需要搜索文件内容里包含的特定字符串,需要用grep(用的最常见);

查找目录下文件件名为test的文件

查找所有目录中名称中按照”.log”结尾的文件

find /  -name "*.log" 


-perm :按照文件权限来查找文件。
最好使用八进制数字权限表示法,但是也可以用符号表示 $find . -type f -perm a=rwx-exec ls -l {} \;

查找当前目录下所有权限为755的文件,并设置成777


设置后:


注意:

-perm  mode  :查找的文件属性刚好等于 mode的,
 -perm -mode :查找的文件属性必须要全部囊括 mode 的属性的文件,例如:我们要查找 -rwxr----- ,亦即744 的文件,使用 -perm -744,当一个档案的属性为 -rwxr-xr-x ,亦即 755时,也会被列出来,  因为 -rwxr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了, 所以:-mode其实就是查找比mode值大的文件
 -perm +mode :查找档案属性『包含任一 mode 的属性』的文件,举例来说,我们查找 -rwxr-xr-x ,
亦即 -perm +755 时,但一个文件属性为 -rw-------   也会被列出來,因为它有 -rw.... 的属性存在 ;

-mtime -n +n 按照文件的更改时间来查找文件
注意: 单位都是以计算的,可以使用mtime,atime或ctime选项
-mtime(medify time):文件内容修改时间
-atime(access time):文件被读取或者访问时间
-ctime(change time):文件状态变化时间(权限等,文件的移动也是由这个时间决定)

-amin n    查找系统中最后n分钟访问的文件

-atime n   查找系统中最后n天访问的文件

-cmin n    查找系统中最后n分钟被改变文件状态的文件

-ctime n   查找系统中最后n天被改变文件状态的文件

-mmin n   查找系统中最后n分钟被改变文件数据的文件

-mtime n  查找系统中最后n天被改变文件数据的文件

以上的这些时间都需要与一个值n结合使用;
需指定+n、n、-n;
- n表示文件更改时间距现在n天以内,
+ n表示文件更改时间距现在n天以前。
-type  查找某一类型的文件
诸如:b - 块设备文件。d - 目录。c - 字符设备文件。p - 管道文件。l - 符号链接文件。f - 普通文件。
size n    查找满足条件大小 的文件

-size +2M大于2M的文件

-size -1k小于1k的

-size 2M介于2M正负1M范围内的文件

-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser   查找无有效属主的文件,即该⽂件的属主在/etc/passwd中不存在。
-newer    file1 ! file2 查找更改时间比file1新但比文件file2旧的文件。
...  还有若干选项举一反三;

find命令配合xargs使用
xargs是一条Unix和类Unix操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题;
在当前目录中查找以file打头的文件 ,然后把结果保存到/tmp/core.log 文件中:
#find . -name "file*" -print | xargs echo "" > /temp/core.log

在当前目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:
#find . -perm 777 -print | xargs chmod o-w




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值