CMD的find命令怎么用?

发布网友 发布时间:2022-02-26 09:38

我来回答

2个回答

懂视网 时间:2022-02-26 13:59

Linux中find的使用法?

操作系统:centos7

软件版本 :find4.6

设备型号:ThinkPad E15

find命令用于查找指定目录下的文件,同时也可以调用其它命令执行相应的操作。

find语法格式:find  路径名称   选项       

find命令选项:

-name 按照文件名查找文件。  “名称”

-perm 按照文件权限来查找文件。666 777 等

-user 按照文件属主来查找文件

-group 按照文件所属的组来查找文件

-mtime  -n  / +n 按照文件的更改时间来查找文件,

- n 表示文件更改时间距现在n天以内

+ n 表示文件更改时间距现在n天以前

-type 查找某一类型的文件

b - 块设备文件

d - 目录

c - 字符设备文件

p - 管道文件

l- 符号链接文件

f - 普通文件

-size n  查找符合指定的文件大小的文件

-exec    对匹配的文件执行该参数所给出的其他linux命令, 相应命令的形式为' 命令 {} ;,注意{ }和 ;之间的空格,{}代表查到的内容


例1:查找当前目录下所有的TXT格式的文件

[root@xuegod63 ~]# touch a.txt xuegod.txt

[root@xuegod63 ~]#  find . -name "*.txt"

。。。

./a.txt

./xuegod.txt


2、按照更改时间或访问时间等查找文件

如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项

mtime:  文件最后一次修改的时间

atime:  最后一次访问时间

ctime:  文件的最后一次变化时间,也就是修改时间

例1:在root目录下查找更改时间在1天以内,被黑客修改的文件

[root@xuegod63 ~]# find /root/ -mtime -1

对查找内容执行相应命令

-exec    这个选项参数后面可以跟自定义的SHELL命令,格式如下:


例2:把查找到的文件复制到一个指定的目录

[root@xuegod63 ~]# touch {1,2,3}.back

[root@xuegod63 mnt]# find /root -name "*.txt" -exec cp {} /opt  ;


例3:查找多个类型文件

find命令中比较符的使用:

-a  and 并且

-o  or  或者

+  超过

-   低于

[root@xuegod63 ~]# touch a.pdf back.sh

[root@xuegod63 ~]# find ./ -name "*.sh" -o -name "*.pdf"

[root@xuegod63 ~]# find /etc -size +20k -a -size -50k | wc -l

22

[root@xuegod63 ~]# find /etc -size +20k  | wc -l

49


例4:  按权限查找:-perm

[root@xuegod63 ~]# find /bin/ -perm 755   # 等于0755权限的文件或目录

[root@xuegod63 ~]# find /bin/ -perm  -644 #-perm -644  至少有644权限的文件或目录


例5:查找的目录深度:

-maxdepth 1  #只查找目录第一层的文件和目录

如:查找/bin目录下权限等于644的文件

[root@xuegod63 ~]# find /etc/ -maxdepth 1 -perm 644 | more

总结:find命令使用方法和参数

find命令选项:

-name 按照文件名查找文件。  “名称”

-perm 按照文件权限来查找文件。666 777 等

-user 按照文件属主来查找文件

-group 按照文件所属的组来查找文件

-mtime  -n  / +n 按照文件的更改时间来查找文件,

- n 表示文件更改时间距现在n天以内

+ n 表示文件更改时间距现在n天以前

-type 查找某一类型的文件

b - 块设备文件

d - 目录

c - 字符设备文件

p - 管道文件

l- 符号链接文件

f - 普通文件

-size n  查找符合指定的文件大小的文件

-exec    对匹配的文件执行该参数所给出的其他linux命令, 相应命令的形式为' 命令 {} ;,注意{ }和 ;之间的空格,{}代表查到的内容

热心网友 时间:2022-02-26 11:07

在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。

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com