find 命令的 7 种用法

作者&投稿:暨婵 (若有异议请与网页底部的电邮联系)
~

可以很肯定地说, find 命令是 Linux 后台开发人员必须熟知的操作之一,除非您使用的是 Windows Server。

对于技术面试,它也是一个热门话题。让我们看一道真题:

这种情况很常见,但令人惊讶的是,并非每个开发人员都能在面试中清楚地写出这个命令。

答案:首先我们需要使用 cd 命令进入对应的目录,然后,命令如下:

如果你还没有完全理解上面的命令,完全不用担心。本文将介绍 find 命令的 7 个实际用途,您最终会掌握它。如果您已经知道了,那么阅读这篇文章对您来说将是一个很好的回顾。

0. 按名称或正则表达式查找文件

让我们从最简单的用法开始。要按特定名称搜索文件,命令如下:

如何查找所有格式为 pdf 的书籍?使用正则表达式:

默认情况下,find 命令会搜索常规文件,但最好进行指定( -type f )以使所有内容更清晰:

1. 查找不同类型的文件

除了搜索常规文件外,我们还可以通过指定 -type 选项来搜索其他类型的文件。

例如目录:

或者符号链接:

2.按指定的时间戳查找文件

要按指定的时间戳搜索文件,我们需要知道 Linux 系统中的 3 个不同的时间戳:

所以,正如开头提到的面试题,要搜索 atime 超过一年的文件,我们可以编写如下命令:

如果我们需要查找 mtime 正好是 5 天前的文件,请不要包含 + ,因为它的意思是“大于”。

显然, + 表示“大于”, - 表示“小于”。所以我们可以搜索 ctime 在 5~10 天前的文件:

3. 按大小查找文件

-size 选项使我们能够按指定大小查找文件。我们可以将其计量单位指定为以下约定:

类似于按时间戳查找文件,+ 表示“大于”,- 表示“小于”。例如,要查找大小为 10 MB ~ 1 GB 的文件:

4. 按权限查找文件

合理控制文件的权限是 Linux 管理员的一项重要任务。find 命令的 -perm 选项可以帮助我们按指定权限查找文件:

例如,上面的命令会搜索所有具有 777 权限的文件,这意味着一个文件对其持有者、组和所有用户具有所有的读、写和可执行权限。


5. 按所有权查找文件

这个任务很简单。我们可以使用 -user 选项指定用户名。例如,以下命令将查找所有属于 yang 的文件:

6. 在找到文件后执行命令

在大多数情况下,我们希望在找到我们需要的文件后进行后续操作。例如将其删除,或检查它们的详细信息等等。-exec 命令使这些所有事情变得更加容易。

现在,要了解如何使用它,让我们回到之前提到的面试问题:

上述命令在 -exec 选项后是 rm -rf,其用于删除文件。{} 是用于查找结果的占位符。


注意:占位符 {} 非常重要,尤其是在您想删除文件时。因为,如果您不使用它,该命令将对所有文件执行(而不是您刚刚通过 find 命令找到的文件)。


做一个尝试,请在终端上执行以下两个命令,并检查它们的结果有何不同:


一个使用占位符:

另一个不使用:


-exec 选项后面的命令必须以分号(;)结束。众所周知,转义字符用于去除单个字符的特殊含义。在 Linux 中,反斜杠 用作转义字符。所以我们将它用于分号字符。


总结

看完 find 命令的 7 种用法后,开始提到的面试题现在好像很容易解决了。你现在可以直接写下它的答案并将其解释清楚吗?




洞头县17260517359: 如何掌握find命令用法 -
捷治固肠: 1.命令格式:find pathname -options [-print -exec -ok ...]2.命令功能:用于在文件树种查找文件,并作出相应的处理 3.命令参数:pathname: find命令所查找的目录路径.例如用.来表示当前目录,用/来表示系统根目录. -print: find命令将匹配的文件输出到标准输出. -exec: find命令对匹配的文件执行该参数所给出的shell命令.相应命令的形式为'command' { } \;,注意{ }和\;之间的空格. -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行.

洞头县17260517359: 如何使用find命令查找文件? -
捷治固肠: 1.按照文件名查找 (1)find / -name httpd.conf#在根目录下查找文件httpd.conf,表示在整个硬盘查找 (2)find /etc -name httpd.conf#在/etc目录下文件httpd.conf (3)find /etc -name '*srm*'#使用通配符*(0或者任意多个).表示在/etc目录...

洞头县17260517359: 批处理find使用方法 -
捷治固肠: find 命令在文件中搜索指定的字符串或文字.Cmd.exe 显示与在命令提示符窗口中指定的字符串或文字相匹配的所有行.可以把 find 命令用作筛选器命令,也可以用作标准的 Windows XP 命令.有关如何将 find 用作标准命令的详细信息,请参...

洞头县17260517359: find指令是linux中的功能最齐全的搜索指令,求用法! -
捷治固肠: 名称: find 用法: find <path> <expression> 使用说明: 将档案系统内符合expression 的档案列出来.你可以指要档案的名称、类别、时间、大小、权限等不同信息的组合,只有完全相符的才会被列出来. find 根据下列规则判断path 和...

洞头县17260517359: 怎样用find命令找出某人的文件 -
捷治固肠: 用find命令找出某人的文件的方法 1、find的语法: find [起始目录] 寻找条件 操作 2、表述方式:find PATH OPTION [-exec COMMAND { } \;] find命令会根据用户给的option,也就是寻找条件从用户给出的目录开始对其中文件及其下子目录中...

洞头县17260517359: 如何利用find命令查找文件? -
捷治固肠: 此命令的最大用处是当忘了文件的正确所在,而想找到该文件.命令格式 find 目录名 条件目录名 —�0�2 欲开始寻找的目录所在.find会寻找此目录及其子目录.可以有多个目录名称,只要目录与目录之间用空格分开即可. 条件�0�2�0�2...

洞头县17260517359: linux中find命令的使用方法有哪些? -
捷治固肠: find / -amin -10 # 查 在系统中最后10分钟访问的文件 find / -atime -2 # 查 在系统中最后48小时访问的文件 find / -empty # 查 在系统中为空的文件或者活页夹 find / -group cat # 查 在系统中属于 groupcat的文件 find / -mmin -5 # 查 在系统中...

洞头县17260517359: linux,find命令 -
捷治固肠: 在Linux系统下用find命令在系统特定目录下,查找具有某种特征的文件;find命令后面写上-name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可,命令反馈显示出查找结果列表:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

洞头县17260517359: 如何用find命令查找大于50M的文件 -
捷治固肠: Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.即使系统中含有网络文件系统,find命令在该文件系统中同样有效. 命令格式:find 路径 命令参数 [输出形式]需要使用的参数...

洞头县17260517359: Linux中的find是什么意思? -
捷治固肠: 这里的find的本意就是“发现”,这句话写的比较文雅,用文学的笔触表达的.find有很多用法,比如:作“发现”理解,I can't find my boots! 我找不到我的靴子!,作“(对某人某事)产生某种感觉”如I find him boring!我发觉他很讨厌!...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网