每天一个Linux命令

命令:find

用途:查找文件并执行指令的操作

【语法】:find [路径] [选项] [参数]

【功能介绍】:find命令在指定的目录下查找文件。find命令还能够对查找到的文件执行的指定的操作,通过调用其他Linux命令来实现。

【选项说明】

-name name      表示包含指定匹配模式的文件名。

-iname name      表示包含指定匹配模式的文件名,不区分大小写。

-type   x (x表示文件类型)。  指定文件类型查找文件。b块设备文件,c字符设备文件,d目录,p命名管道,f普通文件,l符号连接文件,s网络套接字文件....

-gid (组id)      查找属于指定组id的所有文件

-uid (用户id)      查找属于指定用户id的所有文件

-group (组名)     查找属于指定组名的所有文件

-user(用户名)     查找属于指定用户名的所有文件

-empty         查找文件大小为0的目录或文件

-path     查找指定的路径查找模式查找文件

-perm    按照指定的权限模式查找目录和文件

-size    按照指定文件的大小查找文件。文件大小的默认单位为块。每块512字节。

-amin/-cmin/-mmin [+-]n 查找文件最后一次访问时间/状态改变时间/修改的时间 其中-n表示访问时间为n分钟以内,+n表示访问时间距今n分钟以前。n表示恰好为n分钟

-atime/-ctime/-mtime [-+]n 同上,分钟改为天。

-print   在标准输出设备上显示查找到的文件信息。这是默认选项可以省略

-fprintf  filename 不在终端打印查找到的文件信息。而是将其保存到指定的文件中。

-exec command {} ; 用指定的Linux命令操作查找到的文件。{}表示将查找到的文件作为命令的参数,;是固定字符,放在find命令的最后。 不提醒用户进行确认。

-ok command {} ; 同上,提醒用户进行确认。

【经验技巧】

find命令支持逻辑运算符与(and)或(or)非(not)组成的复合查询条件。 选项-a为默认的选项。逻辑与表示当所有给定的条件都满足是符合查找条件。逻辑或表示只要所给的条件中有一个满足时符合查找条件。逻辑非表示查找所给的条件相反的文件。

【示例1】 -name -type

查找tmp目录下,文件名为1.txt

find  /tmp -name 1.txt

查找tmp目录下,文件格式为普通文件

find /tmp -type  f

查找/tmp目录下,文件类型非目录,文件名包含“.txt”的文件

find  /tmp  ! -type d -name “*.txt”

【示例2】 -path -perm

查找/tmp目录下 dir1目录下的包含.sh的文件

find /tmp -path "/tmp/dir1*" -name "*.sh"

查找/tmp目录下 除了dir1目录以外其他目录下包含*.sh的文件

find /tmp ! -path "/tmp/dir1*" -name "*.sh"    (!取反的意思)

查找/tmp目录下,所有权限为755的文件

find /tmp -perm 755

【示例3】-exec command {} ; -ok command {} ;管道符

查找/tmp目录下 文件名包含.txt的文件并删除

find /tmp -name "*.txt" -ok rm -rf {} ; 

查看/tmp目录下 文件的总数量

find /tmp -type f |wc -l

查看/tmp 目录下 文件名包含.txt的文件并查看文件的前5行

find /tmp -name "*.txt" -exec head -5 {} ;

原文地址:https://www.cnblogs.com/wangshaojun/p/5104797.html