Linux find命令搜索文件(linux命令搜索文件在哪个路径)

find Linux find命令搜索文件 Find是一个命令行程序,它允许您根据用户给定的表达式搜索文件系统层次结构中的文件和目录,并对每个匹配的文件应用用户指定的操作 By myfreax 23 Jul 2022

find命令是Linux系统管理者中最强工具之一。它根据用户特定表达式在目录结构特征中搜索文件和目录,并且可以对每一个相符的文件推行顾客特定操作过程。

您可以使用find命令根据其管理员权限,类型,日期,所有权,规格等搜索文件和目录。它也可以与其他常用工具结合使用,例如grepsed

find命令的一般语法形式是find [options] [path...] [expression]options选项特点控制符号链接,调整选项和提高地处理。

path...方式属性定义find搜索文件的开端目录,你为find特殊一个或多个逐渐目录。expression表达式特点由选项,搜索方式及由运算符分隔姿势组成。

需要在目录中搜索文件,开启find命令的消费者一定要对逐渐目录以及子目录具有加载管理员权限。

让我们看一下案例find -L /var/www -name "*.js"。选项-L告之find命令跟随符号链接。

/var/www是find命令搜索的开始目录。表达式-name "*.js告之find搜索以.js结尾的文件JavaScript文件。

按名字搜索/搜索文件

依据名称搜索文件可能是find命令的比较常见的操作方法。需要使用文件名搜索文件,请在要搜索的文件名后加上-name选项。

例如,需要在/home/myfreax目录中搜索名字叫做document.pdf的文件,能用命令find /home/myfreax -type f -name document.pdf

find的-name选项是区分大小写的,如果你需要运行不区分大小写的搜索,请将-name选项更改为-iname。find命令将匹配Document.pdfDOCUMENT.pdf等。

find /home/myfreax -type f -iname document.pdf

按文件文件后缀名搜索文件

根据文件后缀名搜索文件与按名字搜索文件一样。例如,需要在/var/log/nginx目录中搜索所有以.log.gz结尾的文件,能用命令find /var/log/nginx -type f -name '*.log.gz'

值得一提的是,使用通配符时,尽量加单/冒号或是用反斜杠转义星号标识*,以避免shell描述它。

要搜索与正则匹配*.log.gz不一致的全部文件,能用find命令的-not选项。例如,要搜索所有未以*.log.gz结尾的文件,您可以使用以下find命令。

find /var/log/nginx -type f -not -name '*.log.gz'

按类型搜索文件

有时您可能务必搜索特定文件类型,例如一般文件,目录或符号链接。在Linux中,一切都是文件,包括目录。

需要根据文件的类型搜索文件,挑选find的-type选项特殊文件类型。下面我们列举Linux中所有文件的类型。

f是完全文件。d是目录。l是符号链接。c是字符设备。b是块设备。p是命名管道FIFO。s是sockettcp协议。

例如,需要在各项任务目录中搜索所有目录,能用命令find . -type d,这里. 表有目前目录,-type d特殊文件类型是目录。

广泛案例采用的是chmod命令将网站地址文件管理员权限递归算法更改为644,目录管理员权限更改为755

find /var/www/my_website -type d -exec chmod 0755 {} ;
find /var/www/my_website -type f -exec chmod 0644 {} ;

按尺寸搜索文件

需要根据文件规格搜索文件,挑选find命令的-size选项,之后特殊文件尺寸。您可以使用以下文件后缀名特殊文件规格。

如果你运用-size选项,但是为了特殊文件尺寸,find很有可能运用512字节作为规格进行文件的搜索。

b是512字节。c是字节。w是两个字节。k千字节即kb, M是兆字节,即MB,G是千兆字节便是GB。

例如命令find /tmp -type f -size 1024c将在/tmp目录中找到所有1024字节的文件。

find命令还允许您搜索超出或小于特殊大小的小文件。你可以运用加减符号和文件尺寸说明超出或者小于, 矩阵表示超出,-减矩阵表示小于。

例如命令find . -type f -size -1M,将在各项任务目录中搜索所有小于1MB的文件。注意规格值之前就是指减号标识-

命令find . -type f -size 1M将搜索规格超出1MB的文件,注意规格值之前就是指加号标识

您甚至可以搜索规格范围内文件。以下find命令将在目前目录下搜索/搜索1MB到和2MB之间所有文件。

find . -type f -size  1M -size 21M

按日期搜索文件

find命令还可以根据文件的后修改,访问或更改时间来搜索文件。与按尺寸搜索时一样,运用加号和减号说明超出或小于。

例如命令find /etc/dovecot/conf.d -name "*.conf" -mtime 5。将搜索/etc/dovecot/conf.d目录下以.conf结尾并且在近日五天内早已被修改的所有文件。

除了运用24小时作为公司之外,你还可以使用min,小时,秒等有关部门作为搜索的前提。大伙儿将在这里例举这类选项。

-amin说明文件最终访问时间,以min作为公司。-atime说明最终访问时间,以24小时作为公司,即一天。这两个选项均表示在要求访问时间之内。

-cmin说明文件最终更改时间,以min作为公司。-ctime说明文件最终更改时间,而24小时作为公司,即一天。这两个选项均表示在要求最后更改时间之内。

-mmin说明文件的后修改时间,以min作为公司。-mtime说明文件的后修改时间,而24小时作为公司,即一天。这两个选项均表示在要求修改时间之内。

如果你需要特殊修改,访问或更改时间之外作为搜索规范。你可以运用find的-daystart选项。如果它修改以上选项为时间之外。

那也是根据修改日期过滤文件的另一个案例。以下命令将例举/home目录中30多天之后修改的所有文件,包括30天。

find /home -mtime  30 -daystart

按管理员权限搜索文件

find的-perm选项可让您根据文件管理员权限搜索文件。你可以运用文件管理权限标识方法,或者数据信息形式进行搜索。

大伙儿介绍你应用数据方法,因为标识方法也会显得更复杂,也并不有利于阅读。我们可以在数据信息方法前加上减号-或斜线/

如果将斜线/做为作为作为前缀,则至少是用户,组或其他人其中一个管理员权限位与文件匹配。如果将减号-做为作为作为前缀,则文件的管理员权限位尽量全匹配。

find . -perm /444
find . -perm -664

按使用人搜索文件

find的-user-group选项容许要搜索特殊顾客或组拥有的文件。例如命令find / -user myfreax,很有可能搜索顾客myfreax拥有的所有文件和目录。

这是一个真正例子。假设你需要搜索www-data顾客拥有的所有文件,然后把匹配文件的所有权从www-data更改为nginx

find / -user www-data -type f  -exec chown nginx {} ;

搜索并删除文件

-delete选项附加到匹配表达式结尾。find很有可能删除所有相符的文件。

建议仅在确立结果与要删除的文件匹配时,运用-delete选项。可以直接打印出相符的文件,接着再加上-delete选项。需慎重运用-delete选项。

对于目录的删除,find的--delete选项仅有删除与rmdir相同的空目录。例如,能从/var/log/中删除所有以.temp结尾的文件,你们可以运行以下find命令。

find /var/log/ -name `*.temp` -delete

结论

大伙儿为大家彰显了如何在各式各样选项和条件下运用find命令。原文中理应让你对如何在Linux系统上搜索文件有大部分的认知。

您也可以访问find手册页,并阅读find命令的所有其他强悍功效。如有任何疑问或点评,请在下面。

LINUX

Linux常用的网络管理命令(linux常用的网络管理命令有哪些)

2023-1-19 8:12:37

LINUX

Linux type命令(linux中type命令)

2023-1-19 8:15:48

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索