Linux基础---------1.3find命令

本文详细介绍了find命令的用法,包括按名称、类型、大小和权限查找文件,以及使用通配符、正则表达式和执行自定义命令的功能。

find命令是根据表达式在指定的目录中查找符合条件的文件

    用法:
    find [path] [options]
    
    options:
        -name pattern 根据名字去查找文件,可以使用通配符(shell中的通配符)(也可以使用正则表达式)
                    *    代表0个或者任意多个字符(shell中的规则)
                    ?    代表一个任意的字符(shell中的规则)
            如:
                find ./ -name '*.c'
                在当前目录(以及目录下面的目录)查找名字以.c结束的文件
                使用find命令时,只要使用了“*”号,一定要加上单引号或者双引号
                
                find ./ -name '[123].c'
                在当前目录(以及目录下面的目录)查找名字以1.c/2.c/3.c的文件


        -type b|c|d|p|l|s|f  根据文件的类型去查找文件
            b:block 块设备文件(存储设备)
            c:char 字符设备文件
            d:directory 目录文件
            p:pipe 管道文件
            l: link 链接文件
            s:socket 套接字文件
            f:regular file 普通文件
            
                find ./ -name "*.c" -type l
                在当前目录(以及目录下面的目录),查找名字以.c结束的连接文件
                
        根据大小查找文件        
        -size n[c|w|b|K|M|G]
            -size 5
                c:单位是字节
                w:word 字,两个字节就是一个字
                b:块 1b == 512 字节
                k: 1k == 1024 字节

            find   /home   -size   +512k                查大于512k的文件
            find   /home   -size   -512k                   查小于512k的文件

        根据权限查找文件
        -perm mode 根据文件的权限查找
                mode 要求所有的权限位都要匹配
                如:
                    -perm 0664
                    待查找的文件的权限必须是0664

                find ./Test/  -perm 0664

                /mode 只要有一个权限位匹配即可
                如:
                -perm /0111
                    --x--x--x
                    待查找的文件权限只要有一个可执行权限即可匹配
            
        -newer file
            查找比文件file更加新的文件(修改时间再file的后面)
            待查找的文件的修改时间在file的修改时间的后面

            find ./ -newer ./Test/1.c

        -delete 
            删除找到的文件
            
        -exec command {} \;
            每找到一个文件,就执行一次command命令
            如:
            find . -name *.c -exec ls -l {} \;
            每找到一个文件就执行一次ls -l的命令
            {} 代表找到的文件的文件名
        
            
        -exec command {} +;    
            所有的文件查找完毕之后,再去执行command命令
            {} + 代表所有找到的文件名列表(以空格隔开)
            
            如:
            使用find命令,把前面所有写的C文件和头文件打一个包
            找到所有的C文件和头文件
            find /mnt/hgfs/CS2406F/ -regex ".+\\.[ch]"
            
            find /mnt/hgfs/CS2406F/ -regex ".+\\.[ch]" -exec tar -zcvf C_src.tar.gz {} +;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值