CMD的find命令怎么用?

CMD的find命令怎么用?,第1张

在cmd窗口中敲下find /? 这条命令,然后重重地按下回车键。find /? 的执行结果很快,帮助信息全出来了。

find命令详解

find命令的基本格式是这样的:find "要查找的字符串" 要查找的文件,在这里,"要查找的字符串"这个内容是必不可少的,引号也是必须的。例如:find "bathome" d:\test.txt,表示在D盘根目录下的文本文件test.txt中查找含有 bathome 这一字符串的所有行。

find的结果将会有两种情况: 

1、当文件中包含要查找的字符串时,将返回这个字符串所在位置的整行内容,具体格式为:第一行是"---------- ×××" (×××表示被查找的文件名,不包括引号对),第二行开始才出现包含字符串的整行内容; 

2、当文件中没有出现要查找的字符串时,find的结果仅仅返回"---------- ×××" 这一行内容(×××表示被查找的文件名,不包括引号对)。

在查找指定字符串的时候,有的场合需要区分大小写,有的场合则对大小写并不在意,如何实现这些需求呢? 

很简单,在find的时候,添加或取消/i开关就是了,具体用法为:find /i "Abc" test.txt 表示不区分大小写,文本内容中含有 Abc、abc、ABC之类的都算;find "Abc" test.txt则严格区分字符大小写,只能匹配Abc,而不能匹配abc、ABC之类的字符。 

有时候,我们的需求并不是为了查找到某个字符串,而是要检测哪些行不含有特定的字符串,这个时候,可以使用开关/v,用法为:find /v "Abc" test.txt,它表示查找那些不含字符串Abc的行(Abc要区分大小写),如果不区分abc的大小写,那么,应该写成 find /i /v "Abc" test.txt。

1、按名称或正则表达式查找文件

要按特定名称搜索文件,命令如下:

find . -name test.txt

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

find ./yang/books -name "*.pdf"

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

find ./yang/books -type f -name "*.pdf"

2、查找不同类型的文件

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

find . -type d -name "yang*"

或者符号链接:

find . -type l -name "yang*"

3、按指定的时间戳查找文件

要搜索atime超过一年的文件,我们可以编写如下命令:

find . -type f -atime +365

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

find . -type f -mtime 5

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

find . -type f -ctime +5 -ctime -10

4、按大小查找文件

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

find . -type f -size +10M -size -1G

5、按权限查找文件

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

find . -type f -perm 777

6、按所有权查找文件

例如,以下命令将查找所有属于yang的文件:

find -type f -user yang

7、在找到文件后执行命令

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

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

find . -type f -atime +365 -exec rm -rf {} \

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

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

找出/home下不是以.txt结尾的文件

类型参数列表:

向下最大深度限制为3

搜索出深度距离当前目录至少2个子目录的所有文件

UNIX/Linux文件系统每个文件都有三种时间戳:

搜索恰好在七天前被访问过的所有文件

搜索访问时间超过10分钟的所有文件

找出比file.log修改时间更长的所有文件

文件大小单元:

搜索小于10KB的文件

搜索等于10KB的文件

删除当前目录下所有.txt文件

当前目录下搜索出权限为777的文件

找出当前目录下权限不是644的php文件

找出当前目录用户tom拥有的所有文件

找出当前目录用户组sunk拥有的所有文件

找出当前目录下所有root的文件,并把所有权更改为用户tom

上例中,{} 用于与-exec选项结合使用来匹配所有文件,然后会被替换为相应的文件名。

找出自己家目录下所有的.txt文件并删除

上例中,-ok和-exec行为一样,不过它会给出提示,是否执行相应的 *** 作。

查找当前目录下所有.txt文件并把他们拼接起来写入到all.txt文件中

将30天前的.log文件移动到old目录中

找出当前目录下所有.txt文件并以“File:文件名”的形式打印出来

因为单行命令中-exec参数中无法使用多个命令,以下方法可以实现在-exec之后接受多条命令

查找当前目录或者子目录下所有.txt文件,但是跳过子目录sk

要列出所有长度为零的文件


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11846476.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存