文档章节

Linux命令集-find

u
 uetucci
发布于 2017/06/30 19:41
字数 1595
阅读 0
收藏 0

用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

##语法

[root@study ~]# find [PATH] [option] [action]

##参数

1. 与时间有关的选项:共有-atime, -ctime与-mtime,以-mtime说明
    -mtime n : n为数字,意义为在n天之前的"一天之内"被更改内容的文件;
    -mtime +n : 列出n天之前(不含n天本身)被更改过内容的文件名;
    -mtime -n : 列出在n天之内(含n天本身)被更动过内容的文件名。
    -newer file : file为一个存在的文件,列出比file还要新的文件名

2. 与使用者或群组名称有关的参数:
    -uid n : n为数字,这个数字是使用者的账号ID,亦即UID,这个UID是记录在/etc/passwd里面与账号名称对应的数字。
    -gid n : n为数字,这个数字是群组名称的ID,亦即GID,这个GID记录在/etc/group,
    -user name : name为使用者账号,例如:tucci
    -group name : name为群组名称,如果users
    -nouser : 寻找文件的拥有者不存在/etc/passwd的文件
    -nogroup : 寻找文件的拥有群组不存在于/etc/group的文件
                当你自行安装软件时,很可能该软件的属性当中并没有文件拥有者,
                这是可能的!在这个时候,就可以用-nouser与-nogroup搜寻。

3. 与文件权限及名称有关的参数
    -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的权限"的文件,举例来说,我们要搜寻 
                        -rwxr--r--, 亦即0774的文件,使用 -perm -0744,当一个文件的权限为-rwsr-xr-x,
                        亦即4755时,也会被列出来,因为-rwsr-xr-x的属性以及囊括了-rwxr-xr-x的属性了。
    -perm /mode : 搜寻文件权限"包含任一mode的权限"的文件,举例来说,我们搜寻-rwxr-xr-x,亦即
                        -perm /755时,但一个文件属性为 -rw-------也会被列出来,因为他有-rw-------
                        的属性存在

4. 额外可进行的动作:
    -exec command : command 为其他指令,-exec后面可再接额外的指令来处理搜寻到的结果。
    -print                : 将结果打印到屏幕上,这个动作是默认动作

##范例

范例一:将过去系统上面24小时内有更动过内容(mtime)的文件列出

[root@study ~]# find / -mtime 0
# 那个0是重点!0代表目前的时间,所以现在开始到24小时前,
# 有变动过内容的文件都会被列出来!如果是三天前24小时内?
# find / -mtime 3  变动过的文件都被列出的意思

范例二:寻找/etc下面的文件,如果文件日期比/etc/passwd新就列出

[root@study ~]# find /etc -newer /etc/passwd
# -newer 用在分辨两个文件之间的新旧关系是很有用的

输入图片说明

从上面我们可以清楚的知道:

  • +4代表大于等于5天前的文件名:ex > find /var -mtime +4
  • -4代表小于等于4天内的文件名:ex > find /var -mtime -4
  • 4则是代表4-5那一天的文件名:ex > find /var -mtime 4

范例三:搜寻/home下面属于tucci的文件

[root@study ~]# find /home -user tucci
# 这个东西也很有用~当我们要找出任何一个使用者在系统当中的所有文件时。
# 就可以利用这个指令将属于某个使用者的所有文件找出来

范例四:搜寻系统中不属于任何人的文件

[root@study ~]# find / -nouser
# 通过这个指令,可以轻易的就找出那些不太正常的文件。如果有找到不属于系统任何人的文件时,
# 不要太紧张,那有时候是正常的~尤其是你曾经以源代码自行编译软件时。

范例五:找出文件名为passwd这个文件

[root@study ~]# find / -name passwd

范例六:找出文件名包含了passwd这个关键字的文件

[root@study ~]# find / -name "*passwd*"
# 利用这个-name可以搜寻文件名,默认是完整文件名,如果想要找关键字,
# 可以使用类似 * 的任意字符来处理

范例七:找出/run目录下,文件类型为Socket的文件名有哪些

[root@study ~]# find /run -type s
# 这个-type的属性也很有帮助,尤其是要找出哪些怪异的文件
# 例如socket与FIFO文件,可以用find /run -type p 或 -type s来找。

范例八:搜寻文件当中含有SGID或SUID或SBIT的属性

[root@study ~]# find / -perm /7000
# 所谓的7000就是---s--s--t,那么只要含有s或t的就列出,所以当然要使用/7000,
# 使用-7000表示要同时含有---s--s--t的所有三个权限,而只需要一个,就是/7000

范例九:将上个范例找到的文件使用ls -l列出来

[root@study ~]# find /usr/bin /usr/sbin -perm /7000 -exec ls -l {} \;
# 注意到,那个-exec后面的ls -l就是额外的指令,指令不支持命令别名
# 所有仅能使用ls -l不可以使用ll。

输入图片说明

范例中特殊的地方有{}以及;还有-exec这个关键字,这些东西的意义为:

  • {}代表的是"由find找到的内容",如上图所示,find的结果会被放置到{}位置上中;
  • -exec一直到;是关键字,代表find额外动作的开始(-exec)到结束(;),在这中间的就是find指令的额外动作。
  • 因为";"在bash环境下是有特殊意义的,因此用反斜线来跳脱。

范例十:找出系统中,大于1MB的文件

[root@study ~]# find / -size +1M

© 著作权归作者所有

u
粉丝 0
博文 65
码字总数 103136
作品 0
深圳
程序员
私信 提问
(四)Linux学习笔记-Linux常用命令-帮助文档

(四)Linux学习笔记-Linux常用命令-帮助文档 帮助文档 以下为Red Hat系列Linux的命令集,我使用的Centos7.5版本。 帮助文档 - -help(shell内部的命令帮助) man(系统手册中的命令帮助) ...

Super_RD
2018/12/05
0
0
(三)Linux学习笔记-Linux常用命令-搜索命令

(三)Linux学习笔记-Linux常用命令-搜索命令 搜索命令 以下为Red Hat系列Linux的命令集,我使用的Centos7.5版本。 搜索命令 which(显示命令所在目录) find(查找文件或目录) locate(在文...

Super_RD
2018/12/05
0
0
(十三)Linux学习笔记-sudo权限管理配置

(十三)Linux学习笔记-sudo权限管理配置 以下为Red Hat系列Linux的命令集,我使用的Centos7.5版本。 通过sudo对普通用户权限进行精细化管理,例如普通用户没有useradd权限,可以通过设置让该...

Super_RD
04/24
0
0
(五)Linux学习笔记-Linux常用命令-压缩解压

(五)Linux学习笔记-Linux常用命令-压缩解压 压缩解压 以下为Red Hat系列Linux的命令集,我使用的Centos7.5版本。 压缩解压 gzip(压缩文件) gunzip(解压文件) tar(打包目录,常用) zi...

Super_RD
2018/12/06
0
0
linux下grep、awk和sed工具用法概览

linux下grep、awk和sed工具用法概览 在linux下,grep、awk和sed是非常强大的文本处理工具,其中grep命令主要用作文本搜索,而awk和sed命令侧重于文本的编辑等操作,另外awk本身还可以是编程语...

小陶小陶
2018/09/11
174
0

没有更多内容

加载失败,请刷新页面

加载更多

zk中leader和follower启动时信息交互

QuorumPeer中读取节点状态信息,不同状态下设置不同角色 1 Leader启动Follower接收器LearnerCnxAcceptor LearnerCnxAcceptor负责接收非leader连接请求,线程中创建LearnerHandler处理器 2 Le...

writeademo
39分钟前
5
0
完美的Linux之【navi】使用笔记

今天要说的是才上线才两天,就已经获得超过1000星。开发者是一位来自巴西的小哥Denis Isidoro。 开发的工具navi Linux用户的日常困惑 > 新命令 用完就忘 ? > 一时想不起来命令的单词怎么拼?...

我们都很努力着
40分钟前
6
0
iptables删除命令中的相关问题

最近在做一个V**N中间件的配置工作,在配置iptables的时候,当用户想删除EIP(即释放当前连接),发现使用iptables的相关命令会提示错误。iptables: Bad rule (does a matching rule exist ...

Linux就该这么学
52分钟前
5
0
ExtJS 4.2 评分组件

本文转载于:专业的前端网站➸ExtJS 4.2 评分组件 上一文章是扩展ExtJS自带的Date组件。在这里将创建一个评分组件。 目录 1. 介绍 2. 示例 3. 资源下载 1. 介绍 代码参考的是 Sencha Touch 2...

前端老手
今天
5
0
springboot2.0.6启动解析(四)观察器、启动的错报告、Headless模式相关分析

解析SpringApplication的run方法观察器、启动的错报告、Headless模式、监听器相关分析 public ConfigurableApplicationContext run(String... args) { // 构造一个任务执行观察器(Jav...

小亮89
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部