Linux find 命令

Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux find 命令。

1、命令简介

find:在目录层次结构中搜索文件。

2、命令用法

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

3、命令描述

find命令的功能是根据给定的路径和条件查找相关文件或目录,可以使用的参数很多,并且支持正则表达式,结合管道符后能够实现更加复杂的功能,是系统管理员和普通用户日常工作必须掌握的命令之一。Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都被当作想要查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。find 命令有非常大的灵活性,可以向其指定丰富的搜索条件(如文件权限、属主、属组、文件类型、日期和大小等)来定位系统中的文件和目录。此外,find 还支持对搜索到的结果进行多种类型的命令操作。

4、命令选项

选项

说明

-name

匹配名称

-perm

匹配权限(mode为完全匹配,-mode为包含即可)

-user

匹配所有者

-group

匹配所有组

-mtime -n +n

匹配修改内容的时间(-n指n天以内,+n指n天以前)

-atime -n +n

匹配访问文件的时间(-n指n天以内,+n指n天以前)

-ctime -n +n

匹配修改文件权限的时间(-n指n天以内,+n指n天以前)

-nouser

匹配无所有者的文件

-nogroup

匹配无所有组的文件

-newer f1 !f2

匹配比文件f1新但比f2旧的文件

-type b/d/c/p/l/f

匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)

-size

匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)

-prune

忽略某个目录

-exec …… {}\;

后面可跟用于进一步处理搜索结果的命令

5、使用示例

1)在当前工作目录中找到所有名称为names.txt的文件

# find . -name names.txt

2)要在 /tmp目录下找到使用名称names.txt的所有文件。

# find /tmp/ -name names.txt

3)全盘搜索系统中所有以.conf结尾的文件

# find / -name *.conf

4)在/etc目录中搜索所有大约1M大小的文件

# find /etc -size +1M

5)在/home目录中搜索所有属于指定用户的文件

# find /home -user linuxprobe

6)在/var/log目录下搜索所有后缀不是.log的文件

# find /var/log ! -name "*.log"

7)搜索当前工作目录中的所有近7天被修改过的文件

# find . -mtime +7

8)其它操作

Linux find 命令对查找到文件执行其它命令操作(xargs和-exec)

Linux 使用ls、find或du查找所有目录中的大文件

Linux find命令中\+和\;的区别



推荐阅读
cjavapy编程之路首页