zoukankan      html  css  js  c++  java
  • find常用参数详解

    在linux系统中,在init 3模式情况下都是命令行模式,这个时候我们想要找到一个文件的就得依赖一个非常好用的命令find,也是我们要学些的命令哟

    再Linux操作系统的世界里,有各个不同的发行版本,redhat,centos,ubantu,suse,debian,fedora等等,我们需要在这些不通的操作系统中找一个文件,那么

    我们开始今天的命令吧!

    在学find命令之前,我们一起了解一下模糊匹配的命令locate,locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资

    料先建立一个索引数据库,在 执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达update强迫系统立即修改

    索引数据库.我们可以理解成locate是一个模糊的匹配。

    locate可以这么用:

    [root@yinzhengjie ~]# updatedb    //更新所有数据库

    [root@yinzhengjie ~]# locate -n 5 passwd   //在系统更新的数据库(这个数据库存的都是目录或者文件还有路径)中查找含有passwd字样的文件,并输出前5行
    /etc/passwd
    /etc/passwd-
    /etc/passwd.OLD
    /etc/pam.d/passwd
    /etc/security/opasswd
    [root@yinzhengjie ~]#

    [root@yinzhengjie ~]# locate -i passwd //忽略文件的大小写,不管是大写还是小写都会被查出来的

    [root@yinzhengjie ~]# locate passwd //查找还有passwd字样的文件,这个不包括大小写,我们可以通过下面返回结果来看那个搜索的文件比较多。

    补充一下:

    1.在这行中有个"|",表示将前面命令的输出结果让后面的命令去执行,如果有时间大家也可以学学shell,是一个很容易上手的脚本语言;

    2."wc -l"统计文件的行数,包括空格行都统计的哟;

    3.wc的语法:wc [参数] 文件

    参数   含义

    -c        显示文件的Bytes数(字节数)及文件名输出到屏幕上
    -l        将每个文件的行数及文件名输出到屏幕上
    -m      将每个文件的字符数及文件名输出到屏幕上,如果当前系统不支持多字节字符其将显示与-c参数相同的结果
    -w      将每个文件含有多少个词及文件名输出到屏幕上

      

    上面的location功能的确强大啊,find能找到的文件他都能找到呢,但是有的文件并不是我想要啊。假设我就想

    找一下我的系统用户的配置文件的路径,没必要数出来156个参数啊,所以让我们精确查找一下文件吧;

    find的语法使用格式:find [需要查找的路径(如果不写的话默认当前路径)][查找规则][查找完成后执行的动作]

    下面让我们一起看看常用的方法吧:

    1.查找系统用户存放文件【在跟目录下按名称查找】

    怎么样,和locate相比更加精确吧,在这个5个文件找出系统用户存放的目录和在152个文件找出来这个文件要简单的多吧。

    2.在几个不同的目录中查找处我的网页文件

    3.该命令还支持通配符哟,如单个字符“?”,多个字符"*"

    单个字符:

     多个字符:

    好了,举例子就到这里了,我把下面的参数留给你~你跟进上面的参数也应该可以参加用下面的参数了:

    1.命令格式:

    find pathname -options [-print -exec -ok ...]

    2.命令功能:

    用于在文件树种查找文件,并作出相应的处理

    3.命令参数:

    pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 
    -print: find命令将匹配的文件输出到标准输出。 
    -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } \;,注意{   }和\;之间的空格。 
    -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

    4.命令选项:

    -name   按照文件名查找文件。
    -perm   按照文件权限来查找文件。
    -prune  使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
    -user   按照文件属主来查找文件。
    -group  按照文件所属的组来查找文件。
    -mtime -n +n  按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
    -nogroup  查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
    -nouser   查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
    -newer file1 ! file2  查找更改时间比文件file1新但比文件file2旧的文件。
    -type  查找某一类型的文件,诸如:
    b - 块设备文件。
    d - 目录。
    c - 字符设备文件。
    p - 管道文件。
    l - 符号链接文件。
    f - 普通文件。
    -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
    -fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
    -mount:在查找文件时不跨越文件系统mount点。
    -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
    -cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

    另外,下面三个的区别:

    -amin n   查找系统中最后N分钟访问的文件
    -atime n  查找系统中最后n*24小时访问的文件
    -cmin n   查找系统中最后N分钟被改变文件状态的文件
    -ctime n  查找系统中最后n*24小时被改变文件状态的文件
    -mmin n   查找系统中最后N分钟被改变文件数据的文件
    -mtime n  查找系统中最后n*24小时被改变文件数据的文件

  • 相关阅读:
    IP的幻觉
    糟糕的一天
    windows下批量生成文件
    基于Bandersnatch搭建本地pypi源
    vmware vsphere 无法启动故障;
    关于Centos7客户端代理配置
    怎样在交换机判断是否出现环路了呢?
    小小的网络故障
    express for LINUX
    ESXI 7.0 ovf 导出;
  • 原文地址:https://www.cnblogs.com/LilL/p/6210202.html
Copyright © 2011-2022 走看看