• linux命令:文件搜索命令


    ---恢复内容开始---

    文件搜索命令:which

    命令名称:which

    命令所在路径:/usr/bin/which

    执行权限:所有用户

    语法:which  [命令名称]

    功能描述:显示系统命令所在目录,以及别名记录

    范例:$which  ls

    一切皆文件:命令根据权限(路径)可分为两类:1root /sbin /usr/sbin   2,普通路径 /bin  /usr/bin

    此命令可根据查找的命令所在的路径判断其权限。

    whereis [命令名称]

    which类似

    可以显示系统命令的所在路径以及帮助文档(所在文档)

    尽管可以搜索,但应该减少搜索,占用太多资源。所以服务器的规划应该有条理的规划。

    文件搜索命令:find

    命令名称:find

    命令所在路径:/usr/bin/find

    执行权限:所有用户

    语法:find [搜索路径]  [搜寻关键字]

    功能描述:查找文件或目录(任意)

    范例:

       $find  /etc  -name  init   在目录/etc中查找文件或目录init,精准的搜索。

       $find  /     -size   +204800  在根目录下查找大于100MB的文件或目录

       $find  /home  -usr  samlee   在根目录下查找所有者为samlee的文件或目录

    -name 根据文件名查找

    在根目录下查找,会遍历整个硬盘,占用大量资源,应避免。

    当只记得文件名一部分时,可以使用通配符,常用的通配符有两个

    一个是 *   匹配任意字符,包括零个字符

    比如要查找以init开头的文件或目录,则init*则可

    若要查找包含init的文件或目录,则*init*则可

    另一个是?  匹配单个字符 比如文件或目录名含7个字符,只记得前4个,则可用init???则可

    总之在查询时要尽可能的精确路径,精确关键词。节省系统资源,占用系统资源越少越好。

    linux严格区分大小写。不区分用 -iname 只是在搜索是不区分大小写。

    -size   根据文件大小查找  大多数linuxblock数据块  512字节=0.5kb(基本通用)

    100MB=block

    100MB=102400KB=204800block

    大于  +204800

    小于  -204800

    等于  204800

    -user  根据文件所有者查找

    -group根据文件所属组查找

    另外是根据时间查找

    1,天 ctime  atime  mtime

    2,分钟  cmin  amin  mmin

    c-change改变,表示文件的属性被修改过,所有者,所属组,权限。-l所显示的

    a-access 访问,表示被人查看过

    m-modify修改,表示文件内容被修改过

    -  表示多长时间之内,如-1

    +  超过

    $find  /etc  -mmin  -120   120分钟内被修改过内容的文件有哪些。

    $find  /etc  -ctime  -1     /etc下查找24小时内被修改过程属性的文件和目录

    1.连接符   -a   and逻辑与    -o   or逻辑或

    $find  /etc  -size  +163840 -a  -size  -204800 /etc下查找大于80MB小于100MB的文件

    $find  /etc  -name  init* -a  -type(类型) f(二进制文件) /etc目录下查找init开头且类型为二进制文件的文件

    $find  /etc  -name  init* -a  -type       l(软连接文件)/etc目录下查找init开头且类型为软连接的文件

    -type 意为文件类型 f 二进制文件  l 软连接文件   d 目录

    $find /etc  -name  init*  or  -size +204800 /etc下查找以init开头或大小大于100MB的文件或目录

    2.连接符 find ......  -exec 命令 {} ;

    {}表示前面find查询的结果

    / 表示一个转义符(符号命令使用本身的含义)

    ;表示结束

    注意三者之间有空格

    $rm testfile

    rm: remove regular cmpty file ‘testfile’? Y

    $ which rm

    alias rm=’rm -i’             //这也就是所说的别名,而的使用则使其变成最原始的rm-i选项

    /bin/rm

    $ m tesyfile              //此时直接删除

    $

    ;则表示语句的结束

    $find  /etc  -name  inittab -exec  ls  -l  {} ; 查看/etc目录下inittab的详细信息

    $find  /etc  -name  testfile3 -exec rm {};/etc下的testfile3文件直接删掉

    $find  /test  -name  test  -exec ls -l {} ;/test下的test文件列出详细信息  

      连接符 -ok(询问输入)

    $find  /etc  -name inittab -ok ls -l {} ;意为查找到目标文件后,询问是否执行ls

    $find  /etc  -name inittab -ok rm {} ;当后面的命令为rm时显得至关重要,询问是否移除。

    $find /etc -name init* -a -type f -exec ls -l {} ;意为列出/etc下的以init开头的二进制文件的详细信息

    另外的选项:根据i节点查找 无论文件名多奇怪,它总有一个i节点。i节点可以映射到多个文件,所以硬连接可以更新。

    ls -i 便可列出此目录下文件的i节点

    只要获得i节点便可利用find命令进行删除

    例如:

    无论发现何等奇异名字的文件,都可通过find查找i节点的方法来进行删除。

    -inum 根据i节点查找

    find . -inum 31531 -exec rm {} .

    文件搜索指令:locate

    指令名称:locate

    指令英文原意:list files in databeses

    指令所在路径:/usr/bin/locate

    执行权限:all user

    语法:locate [搜索关键字]

    功能描述:寻找文件或目录在文件库中。此命令十分快,是因为建立了一个资料库。只是在资料库中找,并没有在硬盘上找。

    范例:$locate  file

           列出所有和file相关的文件

    locate经常查找一些系统默认安装的命令,配置文件等。

    此命令在unix下一般不提供,只在linux下提供。

    locatefind不同,find是在目录下查找,locate是在定期更新的数据库中查找所以速度非常快,locate经常和命令updatedb配合使用

     新的文件建立后,资料库不会及时更新。

    文件搜索指令:updatedb

    指令英文原意:update the slocate database

    指令所在路径:/usr/bin/updatedb

    执行权限:root

    语法:updatedb

    功能描述:建立整个系统目录文件的数据库

    范例:#updatedb

    当建立新文件,而新文件没有录入数据库时,通过locate则不能查找到

    linix系统下会有个计划任务定期执行updatedb

    注意在/temp文件夹下的所有文件并不会被收录在资料库其中。

     -i不区分大小写

    文件搜索命令:grep

    命令名称:grep

    命令所在路径:/bin/grep

    执行权限:所有用户

    语法:grep [指定字串]  [源文件]

    功能描述:在文件中搜寻字串匹配的行并输出

    范例:#grep ftp /etc/services 所有和ftp相关的行输出出来

    /etc/services 存放了所有网络协议对应的端口和信息

    同样 -i不区分大小写。

    -v 去掉 含#的行    grep -v ^# /etc/inittab ^表示行首。

    ---恢复内容结束---

    文件搜索命令:which

    命令名称:which

    命令所在路径:/usr/bin/which

    执行权限:所有用户

    语法:which  [命令名称]

    功能描述:显示系统命令所在目录,以及别名记录

    范例:$which  ls

    一切皆文件:命令根据权限(路径)可分为两类:1root /sbin /usr/sbin   2,普通路径 /bin  /usr/bin

    此命令可根据查找的命令所在的路径判断其权限。

    whereis [命令名称]

    which类似

    可以显示系统命令的所在路径以及帮助文档(所在文档)

    同时会显示别名。如rm  =  rm -i 询问是否删除。

    文件搜索命令:find

    命令名称:find

    命令所在路径:/usr/bin/find

    执行权限:所有用户

    语法:find [搜索路径]  [搜寻关键字]

    功能描述:查找文件或目录(任意)

    范例:

       $find  /etc  -name  init   在目录/etc中查找文件或目录init

       $find  /     -size   +204800  在根目录下查找大于100MB的文件或目录

       $find  /home  -usr  samlee   在根目录下查找所有者为samlee的文件或目录

    -name 根据文件名查找

    在根目录下查找,会遍历整个硬盘,占用大量资源,应避免。

    当只记得文件名一部分时,可以使用通配符,常用的通配符有两个

    一个是 *   匹配任意字符,包括零个字符

    比如要查找以init开头的文件或目录,则init*则可

    若要查找包含init的文件或目录,则*init*则可

    另一个是?  匹配单个字符 比如文件或目录名含7个字符,只记得前4个,则可用init???则可

    总之在查询时要尽可能的精确路径,精确关键词。节省系统资源,占用系统资源越少越好。

    -size   根据文件大小查找  大多数linuxblock数据块  512字节=0.5kb(基本通用)

    100MB=block

    100MB=102400KB=204800block

    大于  +204800

    小于  -204800

    等于  204800

    -user  根据文件所有者查找

    另外是根据时间查找

    1,天 ctime  atime  mtime

    2,分钟  cmin  amin  mmin

    c-change改变,表示文件的属性被修改过,所有者,所属组,权限。

    a-access 访问,表示被人查看过

    m-modify修改,表示文件内容被修改过

    -  表示多长时间之内,如-1

    +  超过

    $find  /etc  -mmin  -120   120分钟内被修改过内容的文件有哪些。

    $find  /etc  -ctime  -1     /etc下查找24小时内被修改过程属性的文件和目录

    1.连接符   -a   and逻辑与    -o   or逻辑或

    $find  /etc  -size  +163840 -a  -size  -204800 /etc下查找大于80MB小于100MB的文件

    $find  /etc  -name  init* -a  -type(类型) f(二进制文件) /etc目录下查找init开头且类型为二进制文件的文件

    $find  /etc  -name  init* -a  -type       l(软连接文件)/etc目录下查找init开头且类型为软连接的文件

    -type 意为文件类型 f 二进制文件  l 软连接文件   d 目录

    $find /etc  -name  init*  or  -size +204800 /etc下查找以init开头或大小大于100MB的文件或目录

    2.连接符 find ......  -exec 命令 {} ;

    {}表示前面find查询的结果

    / 表示一个转义符(符号命令使用本身的含义)

    $rm testfile

    rm: remove regular cmpty file ‘testfile’? Y

    $ which rm

    alias rm=’rm -i’             //这也就是所说的别名,而的使用则使其变成最原始的rm-i选项

    /bin/rm

    $ m tesyfile              //此时直接删除

    $

    ;则表示语句的结束

    $find  /etc  -name  inittab -exec  ls  -l  {} ; 查看/etc目录下inittab的详细信息

    $find  /etc  -name  testfile3 -exec rm {};/etc下的testfile3文件直接删掉

    $find  /test  -name  test  -exec ls -l {} ;/test下的test文件列出详细信息  

      连接符 -ok(询问输入)

    $find  /etc  -name inittab -ok ls -l {} ;意为查找到目标文件后,询问是否执行ls

    $find  /etc  -name inittab -ok rm {} ;当后面的命令为rm时显得至关重要,询问是否移除。

    $find /etc -name init* -a -type f -exec ls -l {} ;意为列出/etc下的以init开头的二进制文件的详细信息

    另外的选项:根据i节点查找 无论文件名多奇怪,它总有一个i节点。i节点可以映射到多个文件,所以硬连接可以更新。

    ls -i 便可列出此目录下文件的i节点

    只要获得i节点便可利用find命令进行删除

    例如:

    无论发现何等奇异名字的文件,都可通过find查找i节点的方法来进行删除。

    文件搜索指令:locate

    指令名称:locate

    指令英文原意:list files in databeses

    指令所在路径:/usr/bin/locate

    执行权限:all user

    语法:locate [搜索关键字]

    功能描述:寻找文件或目录

    范例:$locate  file

           列出所有和file相关的文件

    locate经常查找一些系统默认安装的命令,配置文件等。

    此命令在unix下一般不提供,只在linux下提供。

    locatefind不同,find是在目录下查找,locate是在定期更新的数据库中查找所以速度非常快,locate经常和命令updatedb配合使用

    文件搜索指令:updatedb

    指令英文原意:update the slocate database

    指令所在路径:/usr/bin/updatedb

    执行权限:root

    语法:updatedb

    功能描述:建立整个系统目录文件的数据库

    范例:#updatedb

    当建立新文件,而新文件没有录入数据库时,通过locate则不能查找到

    linix系统下会有个计划任务定期执行updatedb

    文件搜索命令:grep

    命令名称:grep

    命令所在路径:/bin/grep

    执行权限:所有用户

    语法:grep [指定字串]  [源文件]

    功能描述:在文件中搜寻字串匹配的行并输出

    范例:#grep ftp /etc/services 所有和ftp相关的行输出出来

    /etc/services 存放了所有网络协议对应的端口和信息

  • 相关阅读:
    ZipArchive 的使用
    Bootstrap使用心得
    SQL SERVER 级联删除
    ASP.NET 使用C#代码设置页面元素中的样式或属性
    GDI+中发生一般性错误之文件被占用
    .Net 中资源的使用方式
    一张图全解析个性化邮件那么重要
    看天猫EDM营销学企业EDM营销
    细数EDM营销中存在的两大盲点
    如何进行EDM邮件内容的撰写
  • 原文地址:https://www.cnblogs.com/invisible2/p/6936970.html
Copyright © 2020-2023  润新知