深入学习Linux之命令篇-find

深入学习Linux之命令篇-find

一、概述

     find主要用于文件查找。

二、重要参数

-name : 文件名必须匹配的字符串;<1>
-iname: 与-name类似,不区分大小写;
-o    : or的缩写,  <2>
-path : 使用通配符来匹配文件路径或者文件
-prune: 去除<3>
-a    : and的缩写
-type : 文件类型:d-目录、b-块设备、c-字符设备、f-普通文件、l-连接文件、s-套接字
-mindepth: 目录最小深度
-maxdepth: 目录最大深度
-atime: 访问时间
-ctime: 变化时间
-mtime: 修改时间
-amin: 同-atime
-cmin: 同-ctime
-mmin: 同-cmin
-size: 按文件大小搜索
-delete: 删除匹配的文件
-perm: 根据文件权限查询文件

三、示例

1.根据文件名或正则表达式匹配搜索 (*,?,[]等正则)
<1> find /home/ah -name 'file*'
2.目录查询
<2> find /home/ah/temp \( -name '*.c' -o -name '*.o' -o -name '*.java' \) -print
<3> find . -path './tomcat_a*' (-a) -prune -o -name '*.jsp'
    查找当前目录下非tomcat_a*目录下的*.jsp文件
3. 否定搜索
find . ! -name '*.rar'
   
4. 按照文件类型搜索文件:
find . -maxdepth 1 -type f -printf
  
5.根据文件时间搜索
按天搜索的参数:
atime-访问时间
ctime-变化时间
mtime-修改时间
按分钟搜索的参数:
amin-访问时间
cmin-变化时间
mmin-修改时间
# 最近7天内被访问过的所有文件
find . -type f -atime -7 -print
# 恰好在第7天被访问的文件
find . -type f -atime 7 -print
# 访问超过7天的文件
find . -type f -atime +7 -print

6.基于文件大小的搜索
文件大小单位
b--块(512字节)
c--字节
w--字(2字节)
k--千字节
M--兆字节
G--G字节
#大于2KB字节的文件
find . -type f -size +2k
#等于2KB字节的文件
find . -type f -size 2k
#小于2KB字节的文件
find . -type f -size -2k

7.删除匹配的文件
find . -name '*.swp' -delete

8.基于文件权限和所有权的分配
find . -type f -perm 644

9.结合find执行命令或者动作
find命令可以结合-exec选项与其他命令进行结合
<1>find . -name "*.txt" -exec cat {} \; >collect.txt
把当前目录下txt文件组合输出到collect.txt
<2>find . -name "*.txt" -exec cp {} ./CRT \;
把当前目录下的txt文件拷贝到CRT目录下

你可能感兴趣的:(深入学习Linux之命令篇-find)