Linux下强大的查找命令find 用法和常见用例
Linux系统下find是较为常用的指令,find命令在目录结构中搜索文件,并执行指定的操作,掌握它的形式与用法对我们很有用处。
因为Linux下面一切皆文件,经常需要搜索某些文件来编写,所以对于Linux来说find是一条很重要的命令。Linux下面的find指令用于在目录结构中搜索文件,并执行指定的操作。它提供了相当多的查找条件,功能很强大。在不指定查找目录的情况下,find会在对整个系统进行遍历。
即使系统中含有网络文件系统,find命令在该文件系统中同样有效。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间。
命令功能
用于在文件树中查找文件,并做相应的处理,(有可能访问磁盘)。
1.find命令的格式
find pathname -options [-print -exec -ok ...]
2.命令参数
pathname : find命令所查找的目录路径。例如用 . 来表示当前目录,用 / 来表示系统根目录;
-print:find命令将匹配的文件输出到标准输出;
-exec : find命令对匹配的文件执行该参数所给出的shell命令,为查找完成以后的操作。
相应命令的形式举例如
-exec ls -l {} \;
注意{ }和\;之间的空格;
-ok : 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行,
格式为:
-ok ls -l {} \;
3.命令选项
-options :
-name : 按照文件名查找文件;

-perm : 按照文件权限来查找文件;

-prune : 使用这一选项可以使find命令不在当前指定的目录中查找,
如果同时使用-depth选项,那么-prune将被find命忽略;


-user : 按照文件属主来查找文件;

-group: 按照文件所属的组来查找文件;

-mtime -n +n : 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项相同;

-nogroup :查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在;
-nouser : 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在;
find -nogroup find -nouser
-newer file1:查找更改时间与文件file1更改时间最近的文件;

-type :查找某一类型的文件,诸如:
b - 块设备文件; d - 目录; c - 字符设备文件; p - 管道文件; l - 符号链接文件; f - 普通文件;

-size n +[c] 代表以字节计即查找字节为n的文件,+n(表示大于n字节的文件),-n(表示小于n字节的文件);

-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找;

-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到该配置文件中包含了本系统中有关文件系统的信息;
-mount:在查找文件时不跨越文件系统mount点;
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件;
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
4.命令功能
用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)。
5.总结
由以上可知 Linux下find命令提供了相当多的查找条件,选项很多,功能很强大,即使系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效,只要你具有相应的权限。
所以在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间 (这里是指30G字节以上的文件系统)。
(以上举例命令参数pathname基本都没有明确给出,默认为当前路径)
Linux下强大的查找命令find 用法和常见用例的更多相关文章
- Linux下的搜索查找命令的详解(find)
4.find Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项 ...
- Linux下的文件查找命令——find
Linux下几个常见的文件查找命令: which 查看可执行文件的位置 whereis 寻找特定文件,查看文件的位置 locate 配合数据库查看文件位置 find ...
- Linux下的find查找命令
Linux下的查找命令有:which(查看可执行文件的位置),whereis(查看指定文件的位置),locate(配合数据库查找指定文件的内容).find(在磁盘上查找文件).grep(使用正则表达式 ...
- linux下五种查找命令
我们经常需要在系统中查找一个文件或者命令,那么在Linux系统中如何快速定位和精确查找它呢?下面总结了五个基础命令·分别是which.whereis.type.locate.find. 一 whi ...
- Linux下4个查找命令which、whereis、locate、find的总结
(1)which [-a] cmdname1 cmdname2 ...... 作用:locate a command,从环境变量PATH中,定位/返回与指定名字相匹配的可执行文件所在的路径 ...
- Linux下的搜索查找命令的详解(whereis)
2.whereis 和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据 ...
- Linux下的搜索查找命令的详解(locate)
3.locate locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案.其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中 ...
- Linux下的搜索查找命令的详解(which)
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件 ...
- Linux的五个查找命令find,locate,whereis,which,type
Linux的五个查找命令 1. find 最常见且最强大的命令,可以查找任何文件. 格式 $ find 指定目录 指定条件 指定动作 指定目录: 所要搜索的目录及其子目录,默认当前目录 ...
随机推荐
- BigDecimal 、BigInteger
package com.BigDecimal; public class BigDecimalDemo { /* * 下面的运算的结果出乎我们的意料,有些准确,有些不准确 * 这是为什么呢? * 我们 ...
- kill与kill -9的区别
有时候我们使用kill无法杀掉一个进程,但是用kill -9却可以,why? 首先看一下kill的功能,man手册对kill描述如下: KILL(1) Linux User's Manual KILL ...
- Gakki赛高-团队介绍
队名:Gakki赛高 队员学号(标记组长): 张朝玮(组长)201521123106 张翔 201521123107 陈伟泽 201521123111 李嘉廉 201521123091 侯帅军 201 ...
- ThinkTemplate模板引擎的设计和使用方法
在PHP开发的过程中,我们会接触到很多的模板引擎,包括FastTemplate.SmartTemplate.Smarty.tinybutstrong等,通常都是为了满足MVC开发模式的表现层需要,让显 ...
- 一起来点React Native——你必须要会点FlexBox布局
一.FlexBox布局 1.1 FlexBox是什么意思呢? flexible(形容词):能够伸缩或者很容易变化,以适应外界条件的变化 box(名词):通用的矩形容器 1.2 什么是FlexBox布 ...
- Java第二次作业--数组和String类
Deadline: 2017-3-28 23:00 一.学习要点 认真看书并查阅相关资料,掌握以下内容: 掌握基本数据类型和引用数据类型的区别 理解对象的生成与引用的关系 掌握构造方法的重载 掌握St ...
- Oozie_02安装遇到错误【20161116】
[错误原因]hadoop的core-site.xml配置错误 把用户名hadoop配置成了主机名hadoop01 <!-- OOZIE --><property> <n ...
- graphql-yoga interface && union 使用
接口就是一个约定,方便数据的约定,union 可以实现数据类型的共享,减少代码量 基本项目 参考 https://github.com/rongfengliang/graphql-yoga-doc ...
- postgres 使用存储过程批量插入数据
參考资料(pl/pgsql 官方文档): http://www.postgresql.org/docs/9.3/static/plpgsql.html create or replace functi ...
- C# List的深复制
1.关于深拷贝和浅拷贝 C#支持两种类型:值类型和引用类型 值类型(Value Type):如 char, int, float,枚举类型和结构类型 引用类型(Reference Type):如Cla ...