Linux 搜索命令 find

目录

 搜索命令 find

find 命令

按照文件名搜索

按照文件大小搜索

按照修改时间搜索

按照权限搜索

按照所有者和所属组搜索

按照文件类型搜索

逻辑运算符

其他选项

-exec 选项

-ok 选项


 搜索命令 find

find 命令

  • find 命令的基本信息如下。
    • 命令名称:find。
    • 英文原意:search for files in a directory hierarchy。
    • 所在路径:/bin/find。
    • 执行权限:所有用户。
    • 功能描述:在目录中搜索文件。

按照文件名搜索

[root@localhost ~]# find 搜索路径 [选项] 搜索内容
  • 选项:
    • -name: 按照文件名搜索
    • -iname: 按照文件名搜索,不区分文件名大小写
    • -inum: 按照 inode 号搜索

按照文件大小搜索

[root@localhost ~]# find 搜索路径 [选项] 搜索内容
  • 选项:
    • -size [+|-]大小: 按照指定大小搜索文件
    • 这里的“+”的意思是搜索比指定大小还要大的文件,“-”的意思是搜索比指定大小还要小的文件。
  • find 命令的单位:
[root@localhost ~]# man find
 -size n[cwbkMG]
 File uses n units of space. The following suffixes can be used:
 'b' for 512-byte blocks (this is the default if no suffix is used)
#这是默认单位,如果单位为 b 或不写单位,则按照 512 Byte 搜索
 'c' for bytes
#搜索单位是 c,按照字节搜索
 'w' for two-byte words
#搜索单位是 w,按照双字节(中文)搜索
 'k' for Kilobytes (units of 1024 bytes)
#按照 KB 单位搜索,必须是小写的 k
 'M' for Megabytes (units of 1048576 bytes)
#按照 MB 单位搜索,必须是大写的 M
 'G' for Gigabytes (units of 1073741824 bytes)
#按照 GB 单位搜索,必须是大写的 G

按照修改时间搜索

  • Linux 中的文件有访问时间(atime)数据修改时间(mtime)状态修改时间(ctime)这三个时间,我们也可以按照时间来搜索文件。
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
  • 选项
    • -atime [+|-]时间: 按照文件访问时间搜索
    • -mtime [+|-]时间: 按照文件数据修改时间搜索
    • -ctime [+|-]时间: 按照文件状态修改时间搜索
  • “[+-]”时间的含义。
    • -5:代表 5 天内修改的文件。
    • 5:代表前 5~6 天那一天修改的文件。
    • +5:代表 6 天前修改的文件。

按照权限搜索

[root@localhost ~]# find 搜索路径 [选项] 搜索内容
  • 选项:
    • -perm  权限模式: 查找文件权限刚好等于“权限模式”的文件
    • -perm -权限模式:查找文件权限全部包含“权限模式”的文件
    • -perm +权限模式:查找文件权限包含“权限模式”的任意一个权限的文件

按照所有者和所属组搜索

[root@localhost ~]# find 搜索路径 [选项] 搜索内容
  • 选项:
    • -uid 用户 ID: 按照用户 ID 查找所有者是指定 ID 的文件
    • -gid 组 ID: 按照用户组 ID 查找所属组是指定 ID 的文件
    • -user 用户名: 按照用户名查找所有者是指定用户的文件
    • -group 组名: 按照组名查找所属组是指定用户组的文件
    • -nouser: 查找没有所有者的文件
  • 按照所有者和所属组搜索时,“-nouser”选项比较常用,主要用于查找垃圾文件
  • 只有一种情况例外,那就是外来文件
    • 比如光盘和 U 盘中的文件如果是由 Windows 复制的,在Linux 中查看就是没有所有者的文件;
    • 再比如手工源码包安装的文件,也有可能没有所有者

按照文件类型搜索

[root@localhost ~]# find 搜索路径 [选项] 搜索内容
  • 选项:
    • -type d: 查找目录
    • -type f: 查找普通文件
    • -type l: 查找软链接文件

逻辑运算符

[root@localhost ~]# find 搜索路径 [选项] 搜索内容
  • 选项:
    • -a: and 逻辑与
    • -o: or 逻辑或
    • -not(!): not 逻辑非
  • -a:and 逻辑与
    • find 命令也支持逻辑运算符选项,其中-a 代表逻辑与运算,也就是-a 的两个条件都成立,find 搜索的结果才成立。举个例子:
[root@localhost ~]# find . -size +2k -a -type f
#在当前目录下搜索大于 2KB,并且文件类型是普通文件的文件
  • -o:or 逻辑或
    • -o 选项代表逻辑或运算,也就是-o 的两个条件只要其中一个成立,find 命令就可以找到结果。例如:
[root@localhost ~]# find . -name cangls -o -name bols
./cangls
./bols
#在当前目录下搜索文件名要么是 cangls 的文件,要么是 bols 的文件
  • -not:not 逻辑非
    • -not 是逻辑非,也就是取反的意思。举个例子:
[root@localhost ~]# find . -not -name cangls
#在当前目录下搜索文件名不是 cangls 的文件

其他选项

-exec 选项

  • 这里我们主要讲解两个选项“-exec”和“-ok”,这两个选项的基本作用非常相似。我们先来看看“-exec”选项的格式。
[root@localhost ~]# find 搜索路径 [选项] 搜索内容 -exec 命令 2 {} \;
  • 其次,这个选项的作用其实是把 find 命令的结果交给由“-exec”调用的命令 2 来处理。
  • “{}”就代表 find 命令的查找结果

-ok 选项

  • “-ok”选项和“-exec”选项的作用基本一致,区别在于:
    • “-exec”的命令 2 会直接处理,而不询问;
    • “-ok”的命令 2 在处理前会先询问用户是否这样处理,在得到确认命令后,才会执行。

【注】:参考尚硅谷沈超老师教程

猜你喜欢

转载自blog.csdn.net/baidu_41388533/article/details/107609207