分享交流
合作共赢!

Linux常用Find命令的35个实例

一、根据文件名查找文件

1.使用当前目录中的名称查找文件

在当前工作目录中查找名称为tecmint.txt的所有文件。

# find . -name tecmint.txt
 
./tecmint.txt

2.在主目录下查找文件

使用名称tecmint.txt查找/ home目录下的所有文件。

#find / home -name tecmint.txt
 
/home/tecmint.txt

3.使用名称和忽略大小写查找文件

找到名称为tecmint.txt的所有文件,并在/ home目录中包含大写和小写字母。

#find / home -iname tecmint.txt
 
./tecmint.txt 
./Tecmint.txt

4.使用名称查找目录

/目录中找到名称为Tecmint的所有目录。

#find / -type d -name Tecmint 
/ Tecmint

5.使用名称查找PHP文件

在当前工作目录中查找名称为tecmint.php的所有php文件。

# find . -type f -name tecmint.php
 
./tecmint.php

6.在目录中查找所有PHP文件

# find . -type f -name“* .php”
 
./ tecmint.php 
./login.php 
./index.php

二、根据权限查找文件

7.查找具有777权限的文件

查找权限为777的所有文件。

# find . -type f -perm 0777 -print

8.查找没有777权限的文件

未经许可777查找所有文件。

#find / -type f!-perm 777

9.查找具有644权限的SGID文件

查找权限设置为644的所有SGID位文件。

#find / -perm 2644

10.找到551权限的粘贴位文件

找到权限为551的所有Sticky Bit集文件。

#find / -perm 1551

11.查找SUID文件

查找所有SUID集文件。

#find / -perm / u = s

12.查找SGID文件

查找所有SGID集文件。

#find / -perm / g = s

13.查找只读文件

查找所有只读文件。

#find / -perm / u = r

14.查找可执行文件

找到所有可执行文件。

#find / -perm / a = x

15.查找具有777权限和Chmod到644的文件

查找所有777权限文件,并使用chmod命令将权限设置为644

#find / -type f -perm 0777 -print -exec chmod 644 {} \;

16.查找具有777权限和Chmod到755的目录

找到所有777权限目录并使用chmod命令将权限设置为755

#find / -type d -perm 777 -print -exec chmod 755 {} \;

17.查找并删除单个文件

要查找名为tecmint.txt的单个文件并将其删除。

# 找 。-type f -name“tecmint.txt”-exec rm -f {} \;

18.查找并删除多个文件

要查找和删除多个文件,例如.mp3.txt,请使用。

# 找 。-type f -name“* .txt”-exec rm -f {} \; #找到。-type f -name“* .mp3”-exec rm -f {} \;

19.找到所有空文件

查找特定路径下的所有空文件。

#find / tmp -type f -empty

20.找到所有空目录

在特定路径下归档所有空目录。

#find / tmp -type d -empty

21.归档所有隐藏文件

要查找所有隐藏文件,请使用以下命令。

#find / tmp -type f -name“。*”

三、 基于所有者和组搜索文件

22.基于用户查找单个文件

在所有者root的/ root目录下查找名为tecmint.txt的全部或单个文件。

#find / -user root -name tecmint.txt

23.查找基于用户的所有文件

/ home目录下查找属于用户Tecmint的所有文件。

#find / home -user tecmint

24.查找基于组的所有文件

查找属于/ home目录下的group Developer的所有文件。

#find / home -group开发人员

25.查找特定用户文件

/ home目录下查找用户Tecmint的所有.txt文件。

#find / home -user tecmint -iname“* .txt”

四、根据日期和时间查找文件和目录

26.查找最近50天修改的文件

查找50天后修改的所有文件。

#find / -mtime 50

27.查找最近50天访问的文件

查找50天前访问过的所有文件。

#find / -atime 50

28.查找最近50-100天修改的文件

查找超过50天以及不到100天修改的所有文件。

#find / -mtime +50 -mtime -100

29.在过去1小时内查找更改的文件

查找最近1小时内更改的所有文件。

#find / -cmin -60

30.在过去1小时内查找修改过的文件

查找过去1小时内修改过的所有文件。

#find / -mmin -60

31.在过去1小时内查找访问的文件

查找过去1小时内访问过的所有文件。

#find / -amin -60

五、根据大小查找文件和目录

32.找到50MB的文件

要查找所有50MB文件,请使用。

#find / -size 50M

33.查找大小在50MB到100MB之间

查找大于50MB且小于100MB的所有文件。

#find / -size + 50M -size -100M

34.查找并删除100MB文件

查找所有100MB文件并使用一个命令删除它们。

#find / -size + 100M -exec rm -rf {} \;

35.查找特定文件并删除

查找超过10MB的所有.mp3文件,并使用一个命令删除它们。

#find / -type f -name * .mp3 -size + 10M -exec rm {} \;

附加:查找含有某字符串的文件

1、如果你想在当前目录下 查找”hello,world!”字符串,可以这样:

grep -rn “hello,world!” *

* : 表示当前目录所有文件,也可以是某个文件名

-r 是递归查找

-n 是显示行号

-R 查找所有文件包含子目录

-i 忽略大小写

下面是一些有意思的命令行参数:

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写, 
grep -l pattern files :只列出匹配的文件名, 
grep -L pattern files :列出不匹配的文件名, 
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’), 
grep -C number pattern files :匹配的上下文分别显示[number]行, 
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行, 
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

这里还有些用于搜索的特殊符号:\< 和 \> 分别标注单词的开始与结尾。

例如: 
grep man * 会匹配 ‘Batman’、‘manic’、‘man’等, 
grep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’, 
grep '\<man\>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。 
'^':指匹配的字符串在行首, 
'$':指匹配的字符串在行尾,

2、xargs配合grep查找

find -type f -name '*.php'|xargs grep 'GroupRecord'

此内容查看价格0.1立即购买

温馨提示:

Linux统计目录或文件数量的方法总结

赞(2) 打赏
未经允许不得转载:琼杰笔记 » Linux常用Find命令的35个实例

评论 抢沙发

评论前必须登录!

 

分享交流,合作共赢!

联系我们加入QQ群

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册