#yyds干货盘点#Linux 命令 - find

奋斗吧
奋斗吧
擅长邻域:未填写

标签: #yyds干货盘点#Linux 命令 - find Lync博客 51CTO博客

2023-07-27 18:24:12 183浏览

#yyds干货盘点#Linux 命令 - find,什么是find命令?find 命令用于在指定的目录下搜索文件和目录。它提供了丰富的搜索条件和选项,可以根据文件名、文件类型、文件大小、修改时间等属性进行搜索。find 命令通常用于查找特定文件或根据条件进行批量操作。find命令通常进行的是从根目录 / 开始的全盘搜索,所以不要在高峰时期使用 find 命令。如何使用find命令?

什么是 find 命令?

find 命令用于在指定的目录下搜索文件和目录。它提供了丰富的搜索条件和选项,可以根据文件名、文件类型、文件大小、修改时间等属性进行搜索。find 命令通常用于查找特定文件或根据条件进行批量操作。

find命令通常进行的是从根目录 / 开始的全盘搜索,所以不要在高峰时期使用 find 命令。

如何使用 find 命令?

find 命令的使用相对较复杂,但掌握了基本语法后,你就能灵活使用它。

基本语法:

find 目录路径 [选项参数] [搜索条件]
  • 目录路径:指定要查找的目录路径。
  • 选项参数:用于指定匹配条件,例如文件名、类型。
  • 搜索条件:用于指定要搜索的文件和目录,满足这个条件的就会被搜索出来。

举例说明

假设我们想找到在 /opt/games 目录下所有以 .txt 扩展名结尾的文件,则可以使用以下命令:

find /opt/games -name "*.txt"

这将在 /opt/games 目录及其子目录中搜索所有以 .txt 结尾的文件,并将它们列出。

#yyds干货盘点#Linux 命令 - find_文件大小

如果要在当前目录及其子目录中查找所有以 .txt 结尾的文本文件,则可以使用以下命令:

find . -name "*.txt"

#yyds干货盘点#Linux 命令 - find_搜索_02

常用选项参数

  • -name:按文件名进行匹配。
  • -type:按文件类型进行匹配。
  • -size:按文件大小进行匹配。
  • -user:按文件所属用户进行匹配。
  • -mtime:(modified)按文件最后内容的修改时间进行匹配。
  • -perm:(permission)按文件权限进行匹配。
  • -exec:(execute)对搜索的结果执行命令。

例子

  1. 搜索 /home 目录及其子目录中包含 god23bin 结尾的目录和文件:
find /home -name "*god23bin*"

#yyds干货盘点#Linux 命令 - find_文件大小_03

  1. 搜索 /opt/games 目录下的所有类型为目录的文件(注意:目录也是一种特殊的文件
find /opt/games -type d

#yyds干货盘点#Linux 命令 - find_文件大小_04

-type 后面可以使用的类型:

  • d:目录
  • f:文件
  • l:符号链接(软链接)
  1. 查找 /boot 目录及其子目录下所有大小大于 1MB 的文件:
find /boot -size +1M

#yyds干货盘点#Linux 命令 - find_搜索_05

-size 后面的搜索条件写法:

  • -100c:小于 100B 的文件
  • +10k:大于 10KB 的文件
  • -5M:小于 5MB 的文件
  • +2G:大于 2GB 的文件
  • 以此类推,- 表示小于,+ 表示大于,或者直接指定大小

-size [+-]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)

  1. 查找 /home 目录及其子目录下所有属于 god23bin 这个用户的文件(目录):
find /home -user god23bin

#yyds干货盘点#Linux 命令 - find_子目录_06

  1. 搜索 /opt 目录及其子目录下最近 7 天内发生过修改的文件(目录):
find /opt -mtime -7

#yyds干货盘点#Linux 命令 - find_搜索_07

-7 代表 7 天内,那么自然而然,+7 代表 7 天之前:

find /opt -mtime +7

#yyds干货盘点#Linux 命令 - find_文件大小_08

-mtime [+-]days:按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。

按权限进行匹配

这里先说下,-perm 后面的内容使用数字或符号来表示文件权限,举个例子 /u+rw,这里的 /u 表示用户(所有者)权限,rw 表示具有读写权限,中间的 + 用来表示「具有」

还有其他几个字母:/g,组(group)权限;/o,(other)其他用户权限;/a,(all)所有用户权限。

读写可执行:r(read),w(write),x(execute)

- 表示没有:比如 /u-rw,指用户没有读写权限

  1. 搜索当前目录及其子目录下所有具有读写权限的文件(目录):
find /opt -perm /u+rw

#yyds干货盘点#Linux 命令 - find_子目录_09

  1. 搜索当前目录及其子目录下其他用户具有读写权限的目录:
find /opt -type d -perm /o+rw

#yyds干货盘点#Linux 命令 - find_文件大小_10

对搜索的结果执行命令

-exec 选项参数可以对搜索到的结果执行特定的命令。

  1. 搜索 /opt/games/gta6 目录下的所有 txt 文件,将这些文件复制到 /opt/games/gta6/backup 目录下:
find /opt/games/gta6 -name "*.txt" -exec cp {} /opt/games/gta6/backup \;

注意:-exec 参数需要使用 \; 作为命令的结尾

#yyds干货盘点#Linux 命令 - find_子目录_11

#yyds干货盘点#Linux 命令 - find_搜索_12

  1. 删除 /opt/games/gta6/backup 目录下匹配的 txt 文件:
find /opt/games/gta6/backup -name "*.txt" -exec rm {} \;

#yyds干货盘点#Linux 命令 - find_文件大小_13

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695