linux下通常用whereis或者是locate来检查文件,如果实在找不到,才使用find。为什么find不能作为优先考虑的命令?

因为whereis与locate是利用数据库来查找数据,所以相当快速,而且并没有实际查询硬盘,比较省时间。

whereis [-bmsu] 文件或目录名

-b :只找二进制格式的文件
-m :只找在说明文件manual路径下的文件
-s :只找source源文件
-u :查找不在上述三个选项中的其他特殊文件

find是很强大的命令,但是花费的时间很多,因为find是直接查找硬盘。

而whereis和locate快速是因为linux系统将系统内的所有文件都记录在一个数据库文件里面,这两个命令会以此数据库文件的内容为准,因此,有时你还会发现使用这两个执行文件时会找到已删除的文件,而找不到新创建的文件。

locate [-ir] keyword

-i :忽略大小写的差异
-r :后面可接正则表达式的显示方式

数据库的创建默认是每天执行一次,所以当你新建文件后查找该文件时,locate会告诉你找不到,我们可以更新数据库。使用updatedb命令。

updatedb命令回去读取/etc/updatedb.conf这个配置文件,并更新/var/lib/mlocate内的数据库文件

find [PATH] [option] [action]

参数:
1.与事件有关的参数:共有 -atime -ctime -mtime
-mtime n : n为数字,意义为在n天之前的"一天之内"被更改过的文件;
-mtime +n:列出n天前(不包含n天本身)被更改过的文件名;
-mtime -n:列出n天之内(包含n天本身)被更改过的文件名;
-newer file :file为一个存在的文件,列出比file还要新的文件名
范例:
find / -mtime 0
0代表当前时间,所以从现在开始的24小时前,有改动过内容的文件都会被列出来。
若要求列出3天前的24小时内改动的文件呢
find / -mtime 3
find /etc -newer /etc/passwd
-newer用来分辨两个文件之间的新旧关系
2.find命令-与用户或用户组有关的参数

-uid n:n为数字,UID,
-gid n:n为数字,GID,
-user name:name为用户账号名称
-group name:name为用户组名
-nouser :寻找文件的所有者不存在/etc/passwd的人
-nogroup:寻找文件的所有用户组不存在于/etc/group中的文件
当你自行安装软件时,很可能该软件的属性当中并没有文件所有者,此时可以用上面两个参数进行查找
除了当你自行由网络上面下载文件时会发生之外,如果你将系统里面某个账号删除了,但是该账号已经在系统内创建很多文件时,就很可能会发生无主灵魂的文件存在。也可以使用上面两条命令。
3.find命令-与文件权限及名称有关的参数

-name filename:查找文件名为filename的文件
-size [+-]SIZE:查找比SIZE还要大(+)或小(-)的文件,这个SIZE的规格有:c代表byte,k代表1024bytes .
找比50KB还要大的文件,就是"-size +50k"
-type TYPE:查找文件的类型为TYPE的,类型主要有:一般正规文件(f)、设备文件(b,c),目录(d),连接文件(l),socket(s),以及FIFO(p)属性
-perm mode:查找文件权限"刚好等于"mode的文件,这个mode为类似的chmod的属性值,举例来说,-rwsr-xr-x的属性为4755
-perm -mode :查找文件权"必须要全部包含mode的权限"的文件,举例来说,我们查找权限为0744 的文件时,4755的文件也会被查找出来
-perm +mode :查找文件时,"包含任一mode的权限"的文件,举例来说,我们查找0755时,0600的文件也会被查找出来
4.find命令-其他可行的操作
-exec command : command为其他命令,-exec后面可接其他命令来处理查找的结果 -print : 将结果打印到屏幕上,此操作默认
范例说明:
find / -perm +7000 -exec ls -l {} \;
该范例中{}代表"由find找到的内容"
-exec 一直到\;是关键词,这中间的 ls -l {} 是额外的命令
因为;在bash环境下有特殊意义,所以此处用反斜杠\转义

linux下怎么查找文件的更多相关文章

  1. Linux下快速查找文件

    1 locate 查找内容.查找数据库,updatedb命令更新数据库 2 which 命令 3 find 路径 -name 查找内容.find命令会磁盘查找,比较耗时. 4 grep 查找内容一般为 ...

  2. Linux下相关查找文件命令(find locate which whereis type)

    以下内容摘自:http://blog.csdn.net/jessica1201/article/details/8139249 标注的内容为自己的补充: 我们经常需要在系统中查找一个文件,那么在lin ...

  3. linux下快速查找文件(转载)

    权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/xxmonstor/article/deta ...

  4. [转帖]linux下的find文件查找命令与grep文件内容查找命令

    linux下的find文件查找命令与grep文件内容查找命令 https://www.cnblogs.com/shileima/p/8431393.html 在使用linux时,经常需要进行文件查找. ...

  5. linux下SVN忽略文件/文件夹的方法

    linux下SVN忽略文件/文件夹的方法 假设想忽略文件temp 1. cd到temp所在的目录下: 2. svn propedit svn:ignore . 注意:请别漏掉最后的点(.表示当前目录) ...

  6. Linux下如何查找可执行文件

    Linux下的可执行文件 Linux下如何查找可执行文件,作为一个Linux小菜刚刚有了这个问题, 在windows中,可以通过后缀名判断是否是可执行文件,比如.exe,.bat等是可执行文件,但是在 ...

  7. Linux按照时间查找文件

    linux按照时间查找文件 需要用到一个根据最后修改时间来处理的脚本. 前面有个有关find的基本用法,根据文件大小,类型什么的,这个是关于时间的.  linux 文件的三种时间(以 find 为例) ...

  8. 3种方法来在Linux电脑上查找文件

    如果你不太了解Linux命令,那么在Linux系统里查找文件是比较困难的.只要使用多种不同的终端命令,可以很快地找到文件.Linux命令比其它操作系统的搜索功能更加强大,掌握这些命令就能你完全控制这些 ...

  9. linux下执行.sh文件的方法和语法

    linux下执行.sh文件的方法    .sh文件就是文本文件,如果要执行,需要使用chmod a+x xxx.sh来给可执行权限.       是bash脚本么   可以用touch test.sh ...

随机推荐

  1. Python爬虫入门(7):正则表达式

    下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的一种公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串” ...

  2. Scrum立会报告+燃尽图(Beta阶段第二周第七次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2415 项目地址:https://coding.net/u/wuyy694 ...

  3. Beta阶段第2周/共2周 Scrum立会报告+燃尽图 02

    此作业要求参见:[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2410] 版本控制地址   https://git.coding.net ...

  4. 冲刺ing-5

    第五次Scrum冲刺 队员完成的任务 队员 完成任务 吴伟华 Leangoo的看板截图,燃尽图 蔺皓雯 编写博客 蔡晨旸 测试 曾茜 测试 鲁婧楠 测试 杨池宇 测试 成员遇到的问题 队员 问题 吴伟 ...

  5. linux awk,sort,uniq,wc,cut命令详解

    1.awk awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 $ 表示当前行 $ 表示第一列 NF 表示一共有多少列 $NF 表示最 ...

  6. 2016-2017 ACM-ICPC, NEERC, Northern Subregional Contest Problem I. Integral Polygons

    题目来源:http://codeforces.com/group/aUVPeyEnI2/contest/229510 时间限制:2s 空间限制:256MB 题目大意: 给定一个凸多边形,有一种连接两个 ...

  7. JAVA里面json和java对象之间的相互转换

    1. 把java 对象列表转换为json对象数组,并转为字符串 JSONArray array = JSONArray.fromObject(list);    String jsonstr = ar ...

  8. TCP系列49—拥塞控制—12、DSACK下的拥塞撤销

    一.概述 DSACK下的虚假重传的检测我们之前重传部分的文章已经介绍过了,这里简单说一下拥塞控制部分的实现. linux内部会维护一个undo_retrans状态变量,其值为已经重传的次数减掉被DSA ...

  9. 使用kdump内核调试工具遇到的问题及解决

    修改linux内核代码或者内核模块的时候,搞不好就会造成linux死机崩溃,crash死机后/var/log/kern.log里面不会有任何异常信息记录.这时候kdump就会派上用场了,网上kdump ...

  10. 爬虫学习之-python插入mysql报错

    异常:'latin-1' codec can't encode characters in position 62-66: ordinal not in range(256) 用Python通过pym ...