Linux高级查找

    1、which +命令 (根据PATH环境变量查找命令)
        列出别名以及命令所在位置
    2、whereis +文件(查找速度快)
        列出文件的位置以及帮助手册的位置
    3、locate
        与whereis基本相同
    4、find
        1)参数
        -type 文件类型
        -name 文件名字
        -user 属主
        -group 属组
        -nouser 没有有效属主
        -nogroup 没有有效属组
        -perm 权限
        -size 文件大小
        2)实例:
            例1:查找系统上以.conf结尾的普通文件:
                find / -name "*.conf" -type f 
            例2:查找home目录下用户Jack拥有的普通文件:
                find /home -user "Jack" -type f 
            例3:查找没有有效属主的普通文件:
                find / -type f -nouser 
            例4:查找指定权限的普通文件:
                find 路径 -perm 644 -type f
                                -644 (大于等于指定权限的文件)
                                /644 (属主具有读写权限或属组具有读权限或其他具有读权限,满足其中一位即可)
            例5:查找链接文件:
                find 路径 -type l
            例6:根据时间查找:
                时间查找参数:
                -atime n 取出n*24小时之内存取过的文件
                -ctime n 取出n*24小时之内改变新增的文件或目录
                -mtime n 取出n*24小时之内修改过的文件或目录(常用)
                -newer file 列出比file更新的文件
                实例:
                    find 路径 -mtime 0 过去24小时之内修改过的文件
                    find 路径 -mtime -2 过去两天内修改过的文件
                    find 路径 -mtime +2 过去三天之前修改过的文件
            例7:根据大小查找:
                生成模拟文件:
                    dd if=/dev/zero of=file1.txt bs=1M count=5 (生成一个5M大小的文件file1.txt)
                    find 路径 -type f -size 5M(等于5M)
                    find 路径 -type f -size +5M(大于5M)
                    find 路径 -type f -size -5M(小于5M)
                    find 路径 -type f -size +1M -size -50M(在1M到50M之间)        
            例8:搜索时排除一个目录:
                find 路径 -path'排除目录的路径' -a -prune -o -name 
                命令行的意思是:如果目录dir0存在(即-a左边为真),则求-prune的值,-prune 返回真,‘与’逻辑表达式为真(即-path ‘。/dir0*’ -a -prune 为真),
                find命令将在除这个目录以外的目录下查找txt后缀文件并打印出来;如果目录dir0不存在(即-a左边为假),则不求值-prune ,‘与’逻辑表达式为假,
                则在当前目录下查找所有txt后缀文件。
            例9:找出/tmp目录下,属主不是root,且文件名不以f开头的文件
                find /tmp ! \( -user root -o -name "f*" \)
                条件加括号时,括号需要转义"\(\)"
        3)逻辑关系:
            -a 应该是and的缩写,意思是逻辑运算符‘或’(&&)“两边都为true时,结果才为true;当左边为false时,右边的表达式不会进行运算”;
            -o 应该是or的缩写,意思是逻辑运算符‘与’(||),“两边任何一边为true时结果才为true”
            ! not表示非
        4)找到文件后执行额外操作:
            -exec(不需确认)
            -ok(需要确认)
            例1:查找过去三天之前改动的文件并且以长格式列出
                find 路径 -mtime +2 -exec ls -l {} \;
                {} 代表前面查找的结果
                \  代表结束符
            例2:在线安装软件保存到本地
                修改配置文件:vim /etc/yum.conf       keepcache=1
                find /var/cache/yum/x86-64/7/ -type f -name "*.rpm" -exec cp {} 本地路径 \;
        5)xargs
            适用场景:
                例1:一个文件包含了希望下载的软件包的URL,用xargs下载所有链接
                将链接写入到url.txt中
                cat url.txt | xargs wget -C(大写)
                例2:查找所有jpg文件并压缩:
                    find / -name "*.jpg" -type f -print | xargs tar -cvzf images.tar.gz
                例3:一个文件夹下面文件太多,使用rm或ls等命令时会出现Argument list too long错误
                    解法1:
                        ls | xargs -n 10 rm -rf ls
                    解法2:
                        find . -maxdepth | -name "*.sh" -type f -exec rm -rf {} \;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值