zoukankan      html  css  js  c++  java
  • Linux-鸟菜-6-文件搜索

    Linux-鸟菜-6-文件搜索

    which(寻找[执行档])


    alian ..............这个后面显示的是别名

    没有找到history是因为which是根据PATH环境变阿玲去搜索执行文件的名的。

     

    whereis (由一些热定的目录中找文件文件名)



        上面,which找执行文件,默认whereis列出所有文件(二进制和非二进制),-b就可以找二进制执行文件了。

     

    whichwhereis快是因为他们并不是遍历所有的文件夹,而只是查询一些固定好的目录。所以相比find遍历所有来说会快很多。


    locate/updatedb


    ..我系统是英文的,在网上找个中文的来:



        locate的速度也贼快,但是他并不是因为和whichwhereis一样因为只搜索制定目录才快,他快是因为它搜索的是数据库,数据文件的”镜像”存在了数据库里,不用去真正遍历文件夹去搜索数据,所以快,同时这也就带来了一个问题就是数据库更新问题,可以手动更新,updatedb来更新下,如果不手动更新系统会定时自动更新,比如一天更新一次。所以通常自己马上建立一个文件,直接去搜索并不能搜到,需要手动更新一次再搜。这个问题需要留意。


    find

    最后是说最慢最屌的find命令,这个命令慢是因为它真正发的去遍历并且查找所有相关。屌是以因为条件可以设置的很细,如名字,类型,用户,时间等等。

    帮助命令


    find名字/权限/过滤路径



    Find 用户组/用户名/时间



    查找更改时间比文件file1新但比文件file2旧的文件  -newer file1 ! file2

       说明: find -newer file1 !file2

     

    查找某一类型的文件 -type 

    说明:

    类型文件: 

    b - 块设备文件。 

    d - 目录。 

    c - 字符设备文件。 

    p - 管道文件。 

    l - 符号链接文件。 

    f - 普通文件。 

    find /etc -type d print /etc目录下查找所有的目录 

    find . ! -type d print 在当前目录下查找除目录以外的所有类型的文件 

    find /etc -type l print /etc目录下查找所有的符号链接文件

     

    以文件大小来查找 -size n

    -size n[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计

    说明:

    find . -size +1000000c print 在当前目录下查找文件长度大于1 M字节的文件 

    find . -size 100c print 在当前目录下查找文件长度恰好为100字节的文件 

    find . -size +10 print 在当前目录下查找长度超过10块的文件(一块等于512字节)


    在查找文件时不跨越文件系统mount点 -mount

    说明:

    find . -name "*.sh" -mount print 从当前目录开始查找位于本文件系统中文件名以sh结尾的文件(不进入其他文件系统)

    如果find命令遇到符号链接文件,就跟踪至链接所指向的文件 -follow

    在当前目录及所有子目录中查找filename(忽略大小写)

    # find -iname "filename"

    在根目录分级查找

    查找根目录和根目录的和只展开一级的子目录中查找

    $find -maxdepth 2 -name passwd 

    在根目录和根目录下展开两级查找passwd文件

    $find / -maxdepth 3 -name passwd

    在根目录的第二级和第四级之间查找

    $ find -mindepth 3 -maxdepth 5 -name passwd

     

    findexec一起使用

    在当前目录下查找文件,并使用exec执行ls -l命令

    find .  -type f -exec ls -l {} ;  

    查找并删除dir1目录下更改时间小于一天的文件

    find dir1 -type f -mtime -1 -exec rm {} ; 

    查找并删除dir1目录下更改时间小于一天的文件,删除时提示是否删除  删除  n不删除

    find dir2 -name "*.txt" -mtime -1 -ok rm {} ; 

     

    findxargs一起使用

    find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

    #查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件:

    find . -type f -print | xargs file  

    #在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中:

    find / -name "core" -print | xargs echo "" >/tmp/core.log  

    #grep命令在所有的普通文件中搜索wirelessqa这个词

    find . -type f -print | xargs grep "wirelessqa"  

    #/bixiaopeng/apps目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:

    find /bixiaopeng/apps  -perm -7 -print | xargs chmod o -w 

     

    #删除3天以前的所有东西 (find . -ctime +3 -exec rm -rf {} ;

    find ./ -mtime +3 -print|xargs rm -f r  

    #删除文件大小为零的文件

    find . -size 0 | xargs rm -f &

  • 相关阅读:
    Android OpenGL ES 2.0 (四) 灯光perfragment lighting
    Android OpenGL ES 2.0 (五) 添加材质
    冒泡排序函数
    javascript object 转换为 json格式 toJSONString
    Liunx CentOS 下载地址
    jquery 图片切换特效 鼠标点击左右按钮焦点图切换滚动
    javascript 解析csv 的function
    mysql Innodb Shutdown completed; log sequence number解决办法
    Centos 添加 yum
    javascript 键值转换
  • 原文地址:https://www.cnblogs.com/csnd/p/12061947.html
Copyright © 2011-2022 走看看