Linux[find命令] |
您所在的位置:网站首页 › linux查找指定文件位置 › Linux[find命令] |
一、find命令简介
find命令:用于根据给定的路径和条件查找相关文件或目录,参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能。 基本语法格式:find pathname -options 搜索内容 [其他选项] pathname:用来指定搜索路径。options:用来指定搜索内容。搜索内容:用来指定搜索内容,支持正则表达式。其他选项: -print选项:将find命令匹配的文件输出到标准输出。-exec选项:进一步处理搜索结果。find命令通常进行的是从根目录(/)开始的全盘搜索,不建议过大路径的搜索范围,会消耗较大的系统资源,导致服务器压力过大。 常用 options参数: options参数: -name:按文件名搜索,区分文件名大小写-iname:按文件名搜索,不区分文件名大小写-inum: 按inode号搜索(1)-name和-iname Linux 中的文件名是区分大小写的。 [root@centos7 temp2]# find /usr/local/temp2/ -name test.log /usr/local/temp2/test.log [root@centos7 temp2]# find ./ -iname test.log ./test.log ./Test.log(2)-inum 每个文件都有 inode 号,如果我们知道 inode 号,则也可以按照 inode 号来搜索文件。 # ls -i 显示文件的inode属性信息 [root@centos7 temp2]# ll -i ./ total 8 237180303 drwxr-xr-x 3 root root 33 Oct 10 14:21 2023-10-09 252355940 drwxr-xr-x 2 root root 23 Oct 10 14:19 2023-10-10 169322632 -rw-r--r-- 1 root root 32 Oct 10 14:19 test.log 169322631 -rw-r--r-- 1 root root 32 Oct 10 14:19 Test.log [root@centos7 temp2]# find ./ -inum 169322632 ./test.log [root@centos7 temp2]# find /usr/local/temp2/ -inum 169322632 /usr/local/temp2/test.log 2、按文件类型搜索options参数: -type d:查找目录-type f:查找普通文件-type l:查找软链接文件示例如下: [root@centos7 temp2]# find /usr/local/temp2/ -type f /usr/local/temp2/2023-10-09/test1.log /usr/local/temp2/2023-10-09/10/Test1.log /usr/local/temp2/2023-10-10/test1.log /usr/local/temp2/test.log /usr/local/temp2/Test.log [root@centos7 temp2]# find /usr/local/temp2/ -type d /usr/local/temp2/ /usr/local/temp2/2023-10-09 /usr/local/temp2/2023-10-09/10 /usr/local/temp2/2023-10-10 3、基于目录深度搜索find 命令是递归遍历查找文件夹,列出当前目录及子目录下所有文件。 options参数: -maxdepth LEVELS:按最大深度显示。-mindepth LEVELS:按最少深度显示。示例如下: # 搜索目录下面最多1个子目录深度的所有目录 [root@centos7 temp2]# find /usr/local/temp2/ -maxdepth 1 -type d /usr/local/temp2/ /usr/local/temp2/2023-10-09 /usr/local/temp2/2023-10-10 # 搜索目录下面最多1个子目录深度的所有文件 [root@centos7 temp2]# find /usr/local/temp2/ -maxdepth 1 -type f /usr/local/temp2/test.log /usr/local/temp2/Test.log # 搜索目录下面最少1个子目录深度的所有文件 [root@centos7 temp2]# find /usr/local/temp2/ -mindepth 1 -type f /usr/local/temp2/2023-10-09/test1.log /usr/local/temp2/2023-10-09/10/Test1.log /usr/local/temp2/2023-10-10/test1.log /usr/local/temp2/test.log /usr/local/temp2/Test.log # 搜索目录下面最少2个子目录深度的所有文件 [root@centos7 temp2]# find /usr/local/temp2/ -mindepth 2 -type f /usr/local/temp2/2023-10-09/test1.log /usr/local/temp2/2023-10-09/10/Test1.log /usr/local/temp2/2023-10-10/test1.log 4、按修改时间搜索options参数: -atime[±]时间:按文件访问时间搜索,记录文件最后一次被访问的时间。-mtime[±]时间:按文件数据修改时间搜索,当对这个文件内容进行修改后,modify显示的时间就会更新一次。-ctime[±]时间:按文件状态修改时间搜索,当文件内容、更改文件权限,链接属性时随文件inode更改而改变的时间。以-mtime来举例 “[±]” 时间的含义: +5:代表 6天前修改的文件。5:代表前 5-6天的那一天修改的文件。-5:代表最近 5天内修改的文件。示例如下: # 查找 6天前修改的内容 [root@centos7 temp2]# find /usr/local/temp2 -mtime +5 # 查找 5~6 天那一天修改的内容 [root@centos7 temp2]# find /usr/local/temp2 -mtime 5 # 查找 5天内修改的文件,最大深度为1 [root@centos7 temp2]# find /usr/local/temp2 -maxdepth 1 -type f -mtime -5 /usr/local/temp2/test.log /usr/local/temp2/Test.log # 查找最近 5天内修改的目录,最大深度为1 [root@centos7 temp2]# find /usr/local/temp2 -maxdepth 1 -type d -mtime -5 /usr/local/temp2 /usr/local/temp2/2023-10-09 /usr/local/temp2/2023-10-10 5、按文件大小搜索options参数: -size[±]大小:按照指定大小搜索文件。其中: +:表示搜索比指定大小还要大的文件。-:表示搜索比指定大小还要小的文件。find 默认的单位是512Byte,如果单位为b或不写单位,则按照 512Byte搜索,其他大小搜索单位如下: '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示例如下: # 查找最近 5天内修改的文件,最大深度为1,size小于2M [root@centos7 temp2]# find /usr/local/temp2 -maxdepth 1 -type f -mtime -5 -size -2M /usr/local/temp2/test.log /usr/local/temp2/Test.log 三、其他选项 1、-print选项基本语法格式:find pathname -options 搜索内容 -print -print选项:将find命令匹配的文件输出到标准输出到屏幕。 [root@centos7 temp2]# find /usr/local/temp2 -maxdepth 1 -type f -mtime -5 -print /usr/local/temp2/test.log /usr/local/temp2/Test.log [root@centos7 temp2]# find /usr/local/temp2 -maxdepth 1 -type d -mtime -5 -print /usr/local/temp2 /usr/local/temp2/2023-10-09 /usr/local/temp2/2023-10-10 2、-exec选项基本语法格式:find pathname -options 搜索内容 -exec 命令2 {} ; -exec选项:作用其实是把 find 命令的结果交给由"-exec"调用的 命令2 来处理。 “{}”:代表 find 命令的査找结果,“;”:\ 做转义,;是结束符。注意:这里的“{}”和“;”是标准格式,只要执行”-exec"选项,这两个符号必须完整书写,并且{} 与 \之间有空格。 示例1:找到文件并打印 inode 号 [root@centos7 temp2]# find /usr/local/temp2 -type f -mtime -5 -exec ls -i {} \; 237180309 /usr/local/temp2/2023-10-09/test1.log 69506504 /usr/local/temp2/2023-10-09/10/Test1.log 252355944 /usr/local/temp2/2023-10-10/test1.log 169322632 /usr/local/temp2/test.log 169322631 /usr/local/temp2/Test.log示例1:找到文件并删除 [root@centos7 temp2]# find /usr/local/temp2 -maxdepth 1 -type f -mtime -5 -exec rm -rf {} \; [root@centos7 temp2]# ls 2023-10-09 2023-10-10 3、-ok选项基本语法格式:find pathname -options 搜索内容 -ok 命令2 {} ; -ok选项与"-exec"选项的作用基本一致,区别在于: “-exec”的命令2会直接处理,而不询问;“-ok”的命令2 在处理前会先询问用户是否这样处理,在得到确认命令后,用户输入y才会执行。示例:找到目录并询问用户是否删除。 [root@centos7 temp2]# find /usr/local/temp2 -mindepth 2 -type f -mtime -5 -print /usr/local/temp2/2023-10-09/test1.log /usr/local/temp2/2023-10-09/10/Test1.log /usr/local/temp2/2023-10-10/test1.log [root@centos7 temp2]# find /usr/local/temp2 -mindepth 2 -type d -mtime -5 -print /usr/local/temp2/2023-10-09/10 # 找到目录并询问用户是否删除。# 需要用户输入y,才会执行 [root@centos7 temp2]# find /usr/local/temp2 -mindepth 2 -type d -mtime -5 -ok rm -rf {} \; ? y [root@centos7 temp2]# find /usr/local/temp2 -mindepth 2 -type d -mtime -5 -print [root@centos7 temp2]# find /usr/local/temp2 -mindepth 2 -type f -mtime -5 -print /usr/local/temp2/2023-10-09/test1.log /usr/local/temp2/2023-10-10/test1.log参考文章: find命令 – 根据路径和条件搜索指定文件:https://www.linuxcool.com/find– 求知若饥,虚心若愚。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |