linux下的文件搜索

来源:互联网 发布:微信软件源 编辑:程序博客网 时间:2024/06/15 20:54

一、which

寻找执行文件,按照PATH中规定的路径查找

二、whereis 利用数据库寻找特定文件

参数: -b 只查找二进制文件

            -m 只在帮助文件man中查找

           -s  只找source源文件

            -u 只找上述三种以外的文件

三、locate 利用文件数据库查找文件  数据库/var/lib/mlocate/mlocate.lib

           -i忽略大小写

           -r 后面可加正则表达式

更新数据库:updatedb


四、find 最慢

find 【路径名】 【option】 【action】

1 时间


2 find 搜索路径 匹配表达式

  该命令用于在指定路径中查找符合条件的文件,搜索路径可以是多个目录,不同目录之间以空格分隔
(1)匹配表达式1
     -name filename:要查找的文件名。可以使用通配符“*”,“?”,但要用双引号将文件名引起来
          例子:【root@localhost tmp】# find  –name  “h*”  –print
     -user username:查找属于username用户的文件
          例子:【root@localhost tmp】# find /home –user user1 –print
          翻译:找出/home下属于用户user1的所有文件
     -group groupname:查找属于groupname组的文件
     -print:显示找到文件路径名
(2)匹配表达式2
     -exec 命令 {}:对找到的匹配文件,执行所列出的命令,而不询问用户是否执行这些命令,参数{} 由find找到当前的文件路径名取代,命令行末尾必须有“\;”。
例子:【root@localhost tmp】# find /home –user user1 –exec cat {}\;|more
翻译:找出/home下属于用户user1的所有文件并显示其内容
例子:【root@localhost tmp】# find /home –user user1 –exec rm –r {} \;
翻译:找出/home下属于用户user1的所有文件并删除
       -ok 命令 {}:与-exec的用法相同,在执行命令之前询问用户是否要执行命令
(3)匹配表达式3 

option:-mtime 修改时间 -atime 访问时间 -ctime 创建时间

action:n 天前一天之内操作过的文件 ;+n:n天之前操作过的文件 -n: n天内操作过的文件 

-newer file 比file新的文件

        例子:【root@localhost tmp】# find /home –atime +365 –print
          翻译:找出用户一年前访问过的文件

例子:【root@localhost tmp】# find $home –user user1 –atime +3 –exec rm –r {} \;
翻译:找出用户user1主目录下属于自己的前3天之前访问过文件并删除
(4)匹配表达式4
           -type filetype:指定查找的文件类型
filetype 可以是:b块文件;c字符设备文件;d目录文件;f一般文件
           例子:【root@localhost tmp】# find –type d –print
      翻译:查找当前目录下的所有的子目录
      例子:【root@localhost tmp】# find –type f –print
      翻译:查找当前目录下的所有的普通文件
(5)匹配表达式5
        -size Number和-size Numberc:按照文件大小进行查找。Numberc表示以字节为单位,否则以块(一般是512字节)为单位。-Number(或-Numberc)表示查找比该值小的文件,+Number(或-Numberc)表示查找比该值大的文件

例子:【root@localhost tmp】# find –size -10 –print
翻译:查找当前目录下所有长度小于10块的文件
例子:【root@localhost tmp】# find –size -10c –print | ls –l
翻译:查找当前目录下所有长度小于10字节的文件并以长格式显示文件信息
例子:【root@localhsot tmp】# find –size +100 –size -200 –exec ls –s {} \;
翻译:在当前目录下查找100~200块长的文件并显示文件的实际块数


find来源:http://linux.chinaitlab.com/command/871889.html

0 0
原创粉丝点击