shell高级技巧-文件查找命令find

这篇博客详细介绍了shell中的find命令,包括按文件名、时间属性、文件所有者和组、目录深度、排除子目录、权限、类型、大小以及根据更改时间查找文件的各种用法,帮助用户更高效地在Linux系统中进行文件操作和管理。
摘要由CSDN通过智能技术生成

下面给出find命令的主要应用示例:
[root@xieqichao ~]# ls -l #列出当前目录下所包含的测试文件
-rw-r–r--. 1 root root 48217 Nov 12 00:57 install.log
-rw-r–r--. 1 root root 37 Nov 12 00:56 testfile.dat
-rw-r–r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2
-rw-r–r--. 1 root root 183 Nov 11 08:02 users
-rw-r–r--. 1 root root 279 Nov 11 08:45 users2

1. 按文件名查找:
    -name:  查找时文件名大小写敏感。
    -iname: 查找时文件名大小写不敏感。
    #该命令为find命令中最为常用的命令,即从当前目录中查找扩展名为.log的文件。
    需要说明的是,缺省情况下,find会从指定的目录搜索,并递归的搜索其子目录。
    [root@xieqichao ~]# find . -name "*.log"
     ./install.log
    [root@xieqichao ~]# find . -iname U*          #如果执行find . -name U*将不会找到匹配的文件
    users users2
2. 按文件时间属性查找:
   -atime  -n[+n]: 找出文件访问时间在n日之内[之外]的文件。
    -ctime  -n[+n]: 找出文件更改时间在n日之内[之外]的文件。
    -mtime -n[+n]: 找出修改数据时间在n日之内[之外]的文件。
    -amin   -n[+n]: 找出文件访问时间在n分钟之内[之外]的文件。
    -cmin   -n[+n]: 找出文件更改时间在n分钟之内[之外]的文件。
    -mmin  -n[+n]: 找出修改数据时间在n分钟之内[之外]的文件。
    
   [root@xieqichao ~]# find -ctime -2        #找出距此时2天之内创建的文件
    .
    ./users2
    ./install.log
    ./testfile.dat
    ./users
    ./test.tar.bz2
   [root@xieqichao ~]# find -ctime +2        #找出距此时2天之前创建的文件
   没有找到                     #因为当前目录下所有文件都是2天之内创建的
   [root@xieqichao ~]# touch install.log     #手工更新install.log的最后访问时间,以便下面的find命令可以找出该文件
   [root@xieqichao ~]# find . -cmin  -3       #找出修改状态时间在3分钟之内的文件。
   install.log
3. 基于找到的文件执行指定的操作:
   -exec: 对匹配的文件执行该参数所给出的shell命令。
   相应命令的形式为'command' {
   } \;,注意{
   }和\;
   之间的空格,同时两个{
   }之间没有空格
    -ok:   其主要功能和语法格式与-exec完全相同
    ,唯一的差别是在于该选项更加安全,因为它会在每次执行shell命令之前均予以提示,
    只有在回答为y的时候,其后的shell命令才会被继续执行。需要说明的是,
    该选项不适用于自动化脚本,因为该提供可能会挂起整个自动化流程。
    #找出距此时2天之内创建的文件,同时基于find的结果,应用-exec之后的命令,
即ls -l,从而可以直接显示出find找到文件的明显列表。
    [root@xieqichao ~]# find . -ctime -2 -exec ls -l {
   } \;
    -rw-r--r--. 1 root root      279 Nov 11 08:45 ./users2
    -rw-r--r--. 1 root root  48217 Nov 12 00:57 ./install.log
    -rw-r--r--. 1 root root        37 Nov 12 00:56 ./testfile.dat
    -rw-r--r--. 1 root root      183 Nov 11 08:02 ./users
    -rw-r--r--. 1 root root  10530 Nov 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值