查看原文
其他

公司7K招到的实习生,居然不知道在linux中查找文件!

脚本之家 2022-10-24

The following article is from 浩道linux Author 点击关注👉👉

 关注
“脚本之家
”,与百万开发者在一起

出处:浩道linux(ID:hao_tiyu)
如若转载请联系原公众号

前言

实习生来公司已经有1个多月了,最近他问我平时在linux环境中运维是怎么快速查找系统的文件的位置!看招聘网站上给的至少7K招到的人才,我也不好忒他。听到他这么一问,我反问他,你平时是如何查找文件的?


他说他平时查找文件是靠桌面连接工具,切换文件路径窗口进行查找!我不知道读者朋友平时是怎么查找文件的,但是我想说这位实习生遇到我真是太幸运了,因为我把我平时相关的查找文件技巧一一传授给他了。这里我也整理到本文,将日常工作用到最广泛的一个查找命令find相关使用技巧,分享给广大读者朋友,希望能够在日常工作中大大节省大家查找时间,提升工作效率!


find常见查找功能

1、find根据文件名匹配查找到相关文件;

2、find根据文件权限匹配查找到相关文件;

3、find根据文件所有者及文件所组匹配查找到相关文件;

4、find根据文件时间日期属性匹配查找到相关文件;

5、find根据文件的大小匹配查找到相关文件;


find命令具体用法


find [查找路径] [选项参数] [表达式] [动作]


find根据文件名匹配查找到相关文件用法技巧


一、在某个目录下通过文件名查找某个文件,通过-name选项参数进行查找,文件名可以带通配符。

1、在根目录下查找名称为haodao.py的所有文件。命令如下:

find / -name haodao.py

2、在/etc目录下查找名称为nginx.conf的文件。命令如下:

find /etc -name nginx.conf

3、在/etc目录下查找所有名称包含network的文件。命令如下:

find /etc/ -name "network"

二、在某个目录下通过文件名称和忽略大小写查找某个文件,通过-iname选项参数进行查找。

1、在/etc目录中查找名称为haodao.py的文件,且文件名包含大写和小写字母的所有文件。命令如下:

find /etc -iname haodao.py

三、在某个目录下通过文件类型及文件名称查找某个文件或者某个目录,通过-type-name选项参数结合进行查找。

1、在/data目录中查找名称为tomcat的所有目录。命令如下:

find /data -type d -name tomcat

2、在/data目录中查找名称为haodao.c的所有文件。命令如下:

find /data -type f -name haodao.c

3、在/data目录中查找所有以.py结尾的文件。命令如下:

find /data -type f -name "*.py"


四、在某个目录中查找到相关文件,并且进行删除。

1、在/home目录下查找到文件名为haodoa.txt的文件,并且进行删除该文件。命令如下:

find /home -type f -name "haodao.txt" -exec rm -f {} \;

2、在/home目录中查找到所有以.txt结尾的文件,并且进行删除这些文件。命令如下:

find /home -type f -name "*.txt" -exec rm -f {} \;



五、在某个目录中通过指定目录层级及文件名称查找某个文件,通过-maxdepth-name选项参数结合进行查找。

1、在/目录下分别指定目录层级为2,3,4,查找名称为haodao.cfg的文件。命令如下:

[root@localhost ~]# find / -maxdepth 2 -name haodao.cfg[root@localhost ~]# find / -maxdepth 3 -name haodao.cfg [root@localhost ~]# find / -maxdepth 4 -name haodao.cfg /etc/sysconfig/network-scripts/haodao.cfg

find根据文件权限匹配查找到相关文件用法技巧


一、查找某个目录下具有某些权限的所有文件。通过-perm选项参数进行查找。

1、查找/home目录下具有755权限的所有文件。命令如下:

find /home -type f -perm 755

2、查找/home目录下不具有755权限的所有文件。命令如下:

find /home -type f ! -perm 755

二、查找某个目录下具有某些权限的所有文件,并且将这些文件全部改为某权限。

1、查找/home目录下具有777权限的所有文件,并且将这些权限全部改为755。命令如下:

find /home -type f -perm 777 -exec chmod 755 {} \;


find根据文件所主及所组查找到相关文件用法技巧


一、查找某个目录下所有者为某个用户的文件。通过-user选项参数进行查找。

1、查找/home目录下,文件所有者为hao1的所有文件。命令如下:

find /home -user hao1


二、查找某个目录下所组为某个用户组的文件。通过-group选项参数进行查找。

1、查找/home目录下,文件所组为hao1的所有文件命令如下:

find /home -group hao1


find根据文件时间日期属性查找相关文件用法技巧

一、查找某个目录下具有某些时间属性的所有文件。通过linux三大时间属性匹配进行查找。

1、查找/home目录下30天前修改过的所有文件,命令如下:

find /home -mtime 30

2、查找/home目录下30天前访问过的所有文件。命令如下:

find /home -atime 30

3、查找/home目录下修改超过10天及不到30天的所有文件。命令如下:

find /home -mtime +10 -mtime -30

4、查找/home目录下过去1个小时内修改过的所有文件。命令如下:

find /home -mmin -60

5、查找/home目录下过去1个小时内访问过的所有文件。命令如下:

find /home -amin -60


find根据文件大小属性查找相关文件用法技巧

一、查找某个目录下超过多大的文件。通过-size选项参数进行查找。

1、查找/home目录下文件大小等于100MB的所有文件。命令如下:

find /home -size 100M

2、查找/home目录下文件大小大于100MB的所有文件。命令如下:

find /home -size +100M

3、查找/home目录下文件大小小于100MB的所有文件。命令如下:

find /home -size -100M

4、查找/home目录下文件大小大于80MB,但小于100MB的所有文件。命令如下:

find /home -size +80M -size -100M

5、查找/home目录下文件大小大于100MB的所有文件,并且进行删除。命令如下:

find /home -type f -size +100M -exec rm -f {} \;

6、查找/home目录下文件大小超过10MB的所有.txt文件,并且进行删除。命令如下:

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

结语

find命令可以说是linux中常用的一个查找命令。其功能很强大,以上仅仅举例其常用的一些查找功能,如果大家需要掌握该命令的其它功能,建议还是要自己去实践。


<END>

程序员专属T恤

商品直购链接 👇

  推荐阅读:

这是一件程序员才懂的T恤

调试 Linux 最早期的代码
一文搞懂 | Linux 时钟子系统

万字整理,肝翻Linux内存管理所有知识点

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存