1. 文件搜索find

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。

find的使用格式如下:

  $ find [搜索路径] [搜索条件][搜索文件名]

如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),且严格按照字符串输入的格式搜索,将它们全都显示在屏幕上。

搜索条件选项:

  -name 文件/目录名  #按名字搜索

  -iname 文件/目录名  #不区分大小写按名字搜索

  -user 用户名  #按照所有者搜索

  -nouser  #查找没有所有者的文件

  -mtime 时间  #按照修改文件内容的时间搜索m=modify  +10是10天前,-10是10天内,10是当天

  -ctime 时间  #按照改变文件属性的时间搜索c=change

  -atime 时间  #按照文件访问的时间搜索a=access

  -mmin 时间  #按修改文件内容的时间搜索,time是天,而min是分钟

  -size 文件大小  #按文件大小来搜索:25k代表等于25k,-25k代表小于,+25k代表大于,k要用小写,兆(M)要大写,默认单位是一个扇区大小(即512bytes)

  -inum i节点号  #按照i节点来搜索

$find /etc -size +20k -a -size -50k  #查找大于20k并小于50k的文件

  -a  and 逻辑与,两个条件都满足

  -o  or   逻辑或,满足两个条件之一

  -exec shell命令 {} \;  #用shell命令处理find命令查询到的结果:-exec -ls -lh {} \;

$ find . -type f -mmin -10  #搜索普通类型的文件,如果不加-type f参数,则搜索普通文件+特殊文件+目录。

2. 文件搜索locate

locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含 有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可 以在使用locate之前,先使用updatedb命令,手动更新数据库。

locate的配置文件/etc/updatedb.conf配置:(whereis和which也遵循此配置文件

PRUNE_BIND_MOUNTS="yes"   #开启搜索限制

PRUNENAMES=".git .bzr .hg .svn"   #搜索时不搜索的文件类型

PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs"  #搜索时不搜索的路径

PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre tmpfs usbfs udf fuse.glusterfs fuse.sshfs curlftpfs ecryptfs fusesmb devtmpfs"  #搜索时不搜索的文件系统

locate命令的使用实例:

  $ locate /etc/sh

搜索etc目录下所有以sh开头的文件。

  $ locate ~/m

搜索用户主目录下,所有以m开头的文件。

  $ locate -i ~/m

搜索用户主目录下,所有以m开头的文件,并且忽略大小写。

3. 命令搜索whereis

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

4. 命令搜索which

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。另外还会返回命令的别名

5. type

type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。

type命令的使用实例:

  $ type cd

系统会提示,cd是shell的自带命令(build-in)。

  $ type grep

系统会提示,grep是一个外部命令,并显示该命令的路径。

  $ type -p grep

加上-p参数后,就相当于which命令。

6.字符串搜索grep

  grep [选项] 字符串 文件名 #在文件当中匹配包含指定 字符串的行

选项:

  -i  #忽略大小写

  -v   #排除指定字符串

find和grep的区别:

find是完全匹配,用通配符匹配

grep是包含匹配,用正则表达式匹配

Linux的查找命令的更多相关文章

  1. linux vi查找命令

    linux vi查找命令   div id="article_content" class="article_content">  使用vi编辑器编辑长文 ...

  2. linux中查找命令find、locate、whereis、which、type区别

    linux中查找命令find.locate.whereis.which.type区别 1. find Java代码 find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件.与查询数据库(/ ...

  3. Linux文件查找命令find,xargs详述【转】

    转自:http://blog.csdn.net/cxylaf/article/details/4069595 转自http://www.linuxsir.org/main/?q=node/137 Li ...

  4. Linux搜索查找命令

    Linux搜索查找指令 find,用于在文件树中查找文件并作相应的处理 -name:按照文件名查找文件 -perm:按照文件权限查找文件 -user:按照文件属主来查找文件 -size:按照指定的文件 ...

  5. linux下查找命令总结

    查找命令总结,which,whereis,find,locate,type http://blog.csdn.net/jessica1201/article/details/8139249   1.f ...

  6. Linux下查找命令(收集整理)

    原文:http://blog.csdn.net/sunstars2009918/article/details/8510878 一.Linux查找文件的相关命令 常 用 命 令 简要中文说明 程序所在 ...

  7. Linux下查找命令 —— find、grep、 which、 whereis、 locate

    find命令 基本格式 find < path > < expression > < cmd > ''' path: 所要搜索的目录及其所有子目录.默认为当前目录. ...

  8. linux中查找命令find、locate、whereis、which、type的区别

    find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件.与查询数据库(/var/lib/locatedb)文件不同,find查找的是磁盘空间. locate locate命令其实 ...

  9. Linux文件查找命令find用法整理(locate/find)

    Linux文件查找查找主要包括:locate和find 1.locate 用法简单,根据数据库查找,非实时,用法: locate FILENAME 手动更新数据库(时间可能较长) updatedb 2 ...

随机推荐

  1. 改Bug总结

    [1]屏蔽取舍法 屏蔽取舍,即所谓与问题无关的前后“语境”完全可以忽略,首先屏蔽掉,再根据问题复现路径查看问题发生的区间,然后逐近锁定“病灶”,确定需要修改的目标. [2]追溯原形法 追溯原形,即需要 ...

  2. umask setuid setgid

    cat /etc/bashrc if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ];#用户UI ...

  3. autohotkey-【GUI】Switch between Windows of the Same Application

    下面给出了ahk的脚本,但我需要GUI http://superuser.com/questions/435602/shortcut-in-windows-7-to-switch-between-sa ...

  4. Bootstrap之Carousel问题

    一.不能自动播放的解决办法 1.默认使用Bootstrap的Carousel组件,只需要加上 data-ride="carousel" 就可以实现自动播放了.无需使用初始化的js函 ...

  5. wxPython_Phoenix在线安装

    转自:http://blog.csdn.net/xiaodong193/article/details/51920283 wxpython在python 3.X下变成了wxpython Project ...

  6. sqlite加密

    一直使用sqlite来管理本地的数据,但是Xcode中的SDK中集成的sqlite是免费的,不提供加密模块,但是程序中用到的很多数据,有时候是不想让别人看到,一开始虑修改sqlite的源码,自己重新编 ...

  7. C#Winform常引用的库

    1.DevExpress:引用其下的不同DLL,可操作使用不同的控件 2.IrisSkin2:引用对应的DLL后,代码如下 private Sunisoft.IrisSkin.SkinEngine s ...

  8. [ios][swift]Swift类型之间转换

    http://www.ruanman.net/swift/learn/4741.html

  9. 手把手教你用C++ 写ACM自动刷题神器(冲入HDU首页)

    转载注明原地址:http://blog.csdn.net/nk_test/article/details/49497017 少年,作为苦练ACM,通宵刷题的你 是不是想着有一天能够荣登各大OJ榜首,俯 ...

  10. Behavior Designer中的内置消息机制

    最近在用Behavior Designer,其中需要用到消息机制,看了一下其中自带了这套东西 注册 Owner.RegisterEvent<string>("Message&qu ...