11.3 which-whereis-locate-grep-find 查找命令

11.3.1 which-whereis-locate-grep find 查找命令

  查找文件一般有以下几个命令:

    which  查看可执行文件位置

    whereis 查看可执行文件的位置及相关文件

    locate  配合数据库缓存,快速查看文件位置

           locate解释:

           locate命令和 find -name 功能差不多,是它的另外一种写法,但是这个要比find搜索快的多,因为find命            令查找的是具体目录文件,而locate 它搜索的是一个数据库/var/lib/mlocate/mlocate.db,这个数据库中存有本地所有的文件信息,这个数据库是Linux自动创建并每天自动更新维护。相关的配置信息在/etc/updatedb.conf,查看定时任务信息在/etc/cron.daily/mlocate

         :需要提前执行 yum provides locate,查看需要安装哪些包 

    grep     过滤匹配,它是一个文件搜索工具

         grep作用:过滤,它能够使用正则表达式来搜索文本,并把结果打印出来

         参数:

            -v  取反

            -i   忽略大小写

            ^#  以#开头

            #$  以#结尾

            ^$  空行

            -n   对过滤的内容加上行号

            |   或者的意思

    find    查找相关文件

11.3.2 find 命令使用(必会,参数比较多)

  格式:

     find  pathname  -options  [-print]

    命令字      路径名称   选项    输出

  参数:

    pathname:find 命令所查找的目录路径,不输入代表当前目录例如用`.`来表示当前目录,用`/`来表示系统根目录。

  find 命令选项:

    -name    按照文件名查找文件。`名称`

    -perm    按照文件权限查找文件。666 777 等

    -user     按照文件属主来查找文件

    -group     按照文件所属的组来查找文件

    -mtime     -n / +n 按照文件的更改时间来查找文件

           -n 表示文件更改时间间距现在 n 天以内

             +n 表示文件更改时间间距现在 n 天以前

    -type     查找某一类型的文件

            b  块设备文件

            d  目录

            c  字符设备文件

            p  管道文件

            |   符号链接文件

            f   普通文件

    -size n     查找符合指定文件大小的文件

    -exec    对匹配的文件执行该参数所给出的其他 Linux 命令,相应命令的形式为 命令 {} \;注意{}和 \ ;之间的空格,{}代表查到的内容

   2.按照更改时间或访问时间等查找文件

     如果希望按照更改时间来查找文件,可以使用 mtime,atime 或 ctime 选项

        mtime:文件最后一次修改的时间

        atime:最后一次访问时间

        ctime:文件的最后一次变化时间, 也就是修改时间

     例1:希望在root 目录下查找更改时间在1天以内,被黑客修改的文件

 

   3.对查找内容执行相应命令

    -exec  这个选项参数后面可以跟自定义的SHELL命令,格式如下:

    查找一天内修改的文件:

     例2:创建.back文件,进项查找并进行文件转移

       命令:find . -name "*.back" -exec -mv {} /opt \;

      例3:把查找到的文件复制到一个指定的目录

      命令:find /root -name "*.txt" -exec cp {} /opt \;

       例4:xargs 和 find 命令结合 复制文件  -i 表示 find 传递给 xargs 的结果 由{}来代替(了解)

        命令:find . -name "*.back" | xargs -i cp {} /opt

        例6:查找多个类型文件

      -a  and  并且

      -o  or     或者

      +    超过

      -     低于

       命令:

          find . -name "*.sh" -o -name "*.pdf"

          find /etc -size +20k -a -size -50k | wc -l

          find /etc -size +20k | wc -l

         例7:按权限查找:-perm

 

         例8:查找的目录深度:

        -maxdepth 1  # 只查找目录第一层的文件和目录

        如:查找/bin 目录下权限等于 755 的可执行的文件

          命令:find /bin/ -maxdepth 1 -perm 755

          例9:查找系统中所有属于用户 mk 的文件,并把这个文件,放到/root/findresults 目录下

      注意:/root/findresults 需要提前创建好

 

      cp:无法以目录'/home/mk' 来覆盖非目录'/root/findresults/mk'

      互动:同一个目录下,可以创建文件mk和文件夹mk吗?同一个目录下创建的文件名和目录名一样吗?

 

 

posted on 2024-05-28 17:54  与太阳肩并肩  阅读(6)  评论(0编辑  收藏  举报

导航