加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

Linux中find呼吁的用法汇总

发布时间:2021-01-01 00:57:48 所属栏目:创业 来源:网络整理
导读:Linux体系中的 find 呼吁在查找文件时很是有效并且利便。它可以按照差异的前提来查找文件,譬喻权限、拥有者、修他日期/时刻、文件巨细等等。在这篇文章中,我们将进修怎样行使 find 呼吁以及它所提供的选项来查找文件。 在绝大大都Linux刊行版中,你都可以
副问题[/!--empirenews.page--]

Linux体系中的 find 呼吁在查找文件时很是有效并且利便。它可以按照差异的前提来查找文件,譬喻权限、拥有者、修他日期/时刻、文件巨细等等。在这篇文章中,我们将进修怎样行使 find 呼吁以及它所提供的选项来查找文件。

在绝大大都Linux刊行版中,你都可以直接行使 find 呼吁而无需举办任何安装操纵。假如你想在linux体系的呼吁行中变得出格高效,那么 find 是你必需把握的呼吁之一。

find 呼吁的根基语法如下:

$ find [path] [option] [expression]

一、根基用法

1. 列出当前目次和子目次下的全部文件

这个呼吁会列出当前目次以及子目次下的全部文件。

$ find
.
./abc.txt
./subdir
./subdir/how.php
./cool.php

该呼吁与以下呼吁结果沟通

$ find .
$ find . -print

2. 查找非凡的目次或路径

下面的呼吁会查找当前目次下 test 文件夹中的文件,默认列出全部文件。

$ find ./test
./test
./test/abc.txt
./test/subdir
./test/subdir/how.php
./test/cool.php

下面的呼吁用于查找指命名称的文件。

$ find ./test -name "abc.txt"
./test/abc.txt

也可以行使通配符

$ find ./test -name "*.php"
./test/subdir/how.php
./test/cool.php

请留意,全部的文件夹城市被递归地查找。以是,这是用于查找指定扩展名文件的一种很是强盛的方法。

假如我们实行搜刮 / 文件夹,也就是根目次,就会搜刮整个文件体系,包罗挂载的装备以及收集存储装备。以是请警惕行使。虽然,你随时可以通过按 Ctrl + C 来终止呼吁。

留意:当指定文件夹的时辰(譬喻示例中的"./test"文件夹),忽略末端的斜杠是没有题目的。可是,假如文件夹是一个指向其余位置的链接(symlink)时,你必需在末端写上斜杠才气使find呼吁正常事变(find ./test/)。

忽略巨细写

在查找文件名时,忽略巨细写每每很是有效。要忽略巨细写,只必要行使 iname 选项,而不是 name 选项。

$ find ./test -iname "*.Php"
./test/subdir/how.php
./test/cool.php

老是用双引号或单引号来困绕匹配模式(文件名参数),这很是有效。不这样做的话偶然也能正常事变,偶然也也许会发生稀疏的功效。

3. 限定目次查找的深度

find 呼吁默认会递归查找整个目次树,而这很是耗损时刻和资源。亏得目次查找的深度可以手动指定。譬喻我们只想查找一到两层以内的子目次,可以通过 maxdepth 选项来指定。

$ find ./test -maxdepth 2 -name "*.php"
./test/subdir/how.php
./test/cool.php

$ find ./test -maxdepth 1 -name *.php
./test/cool.php

第二个示例中指定了 maxdepth 为1,表白最多只查找一层内的子目次,也就是只查找当前文件夹。

当我们只想在当前目次下查找,而不是查找整个目次树的时辰,这个选项会出格有效。

与 maxdepth 选项相似,尚有一个选项叫做 mindepth ,正如名字所暗示的那样,它会至少达到第 N 层子目次后才开始查找文件。

4. 反向查找

除了查找满意前提的文件之外,我们还可以查找不满意前提的全部文件。当我们知道要在查找中解除哪些文件时,这个选项就能施展浸染了。

$ find ./test -not -name "*.php"
./test
./test/abc.txt
./test/subdir

在上面的示例中我们找到了全部扩展名不是 php 的文件和文件夹。我们也可以行使叹息号 ! 来取代 -not。

find ./test ! -name "*.php" 

5. 团结多个查找前提

我们可以同时行使多个查找前提来指定文件名并解除某些文件。

$ find ./test -name 'abc*' ! -name '*.php'
./test/abc.txt
./test/abc

上面的呼吁查找全部以 abc 开头而且不含 .php 扩展名的文件。这个示例揭示了 find 呼吁自带的查找表达式是何等的强盛。

OR 操纵符

当我们行使多个查找前提时, find 呼吁会将它们通过 AND 操纵符团结起来,也就是说,只有满意全部前提的文件才会被列出。不外,假如我们必要举办基于 OR 运算的查找时,可以加上 -o 开关。

$ find -name '*.php' -o -name '*.txt'
./abc.txt
./subdir/how.php
./abc.php
./cool.php

上面的呼吁查找全部以 .php 末了可能以 .txt 末了的文件。

6. 只查找文件或目次

偶然我们只想通过某个名字查找对应的文件或对应的目次,我们可以很轻易实现这个要求。

$ find ./test -name abc*
./test/abc.txt
./test/abc

只查找文件

$ find ./test -type f -name "abc*"
./test/abc.txt

只查找目次

$ find ./test -type d -name "abc*"
./test/abc

很是有效并且利便!

7. 同时在多个目次下查找

假如你想要在两个差异的目次内举办查找,呼吁很是简朴。

$ find ./test ./dir2 -type f -name "abc*"
./test/abc.txt
./dir2/abcdefg.txt

搜查一下,它确实列出了来自给定的两个目次的文件。

8. 查找潜匿文件

在Linux体系中,潜匿文件的名字以英文的句号开头,即 . 。以是要列出潜匿文件,只需加上简朴的文件名过滤前提就行了。

$ find ~ -type f -name ".*"

二、基于文件权限和属性的查找

9. 查找指定权限的文件

通过指定 perm 选项,我们可以查找具有特定权限的文件。下面的示例中查找了全部具有 0664 权限的文件。

$ find . -type f -perm 0664
./abc.txt
./subdir/how.php
./abc.php
./cool.php

我们可以用这个呼吁来查找带有错误权限的文件,这些文件也许会发生安详题目。

可以团结 反向查找 来举办权限搜查。

$ find . -type f ! -perm 0777
./abc.txt
./subdir/how.php
./abc.php
./cool.php

10. 查找具有 SGID/SUID 属性的文件

下面的呼吁查找全部具有 644 权限和 SGID 属性的文件。

# find / -perm 2644

我们同样可以行使 1664 来查找配置了 粘滞位 (sticky bit)的文件。

# find / -perm 1644

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读