千家信息网

Linux中如何使用find命令

发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,小编给大家分享一下Linux中如何使用find命令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!find的基本语法格式:f
千家信息网最后更新 2025年02月07日Linux中如何使用find命令

小编给大家分享一下Linux中如何使用find命令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

find的基本语法格式:

find [查找位置] [查找标准] [处理动作]

查找位置:默认为当前目录,可以指定多个目录,多个之间用空格

查找标准:默认为查找指定目录下的所有文件

处理动作:显示到标准输出,默认为print

剖析find的查找标准可分为哪些:

1)文件名

-name "文件名称" : 根据文件名查找,支持glob

-iname "文件名称",根据文件名查找,不区分大小写

2)文件的属主、属组

-user "USERNAME" : 根据属主查找

-group "GROUP" : 根据属组查找

-uid "UID" : 根据UID查找

-gid "GID" : 根据GID查找

-nouser : 查找没有属主的文件

-nogroup : 查找没有属组的文件

代码如下:


[root@Redhat6 /]# find / -nouser -nogroup #没有属主,也没有属组
/tmp/user1dir
[root@Redhat6 /]# ls -ld /tmp/user1dir/ #验证查找的文件是否符合要求,文件没有用户表示属主和属组,但会以ID号来表示
drwxrwxr-x 2 500 500 4096 Jul 23 10:36 /tmp/user1dir/
[root@Redhat6 /]# find / -user root -gid 500 #查找用户为root,gid为500
/tmp/user1dir
[root@Redhat6 /]# ls -ld /tmp/user1dir/
drwxrwxr-x 2 root 500 4096 Jul 23 10:36 /tmp/user1dir/

3)文件的类型

-type

f 文件

d 目录

b 块设备

c 字符设备

l 符合链接文件

p 命令管道文件

s 套接字文件

4)文件的大小

-size

#[k|M|G]:#表示数字,匹配的时候为模糊匹配

+#[k|M|G]:+#表示大于,匹配的结果大于#

-#[k|M|G] :-#表示小于,匹配的结果是小于#


5)文件修改时间

-atime [+|-]# :访问时间,默认为天,#表示#天的这个时间点,+#表示至少有#天没访问 , -#表示#天之内没访问

-mtime [+|-]# : 修改时间,#表示#天的这个时间点没有被修改,+#表示至少有#天没有修改 , -#表示#天之内没有修改

-ctime [+|-]# : 改变时间,#表示#天的这个时间点没有被改变,+#表示至少有#天没有被改变 , -#表示#天之内没有被改变

-amin [+|-]# : 时间为分钟,#表示#分钟的这个时间点没有被访问,+#表示至少有#分钟没有被访问 , -#表示#分钟之内没访问

-mmin [+|-]# :时间为分钟,#表示#分钟的这个时间点没有被修改,+#表示至少有#分钟没有被修改 , -#表示#分钟之内没有被修改

-cmin [+|-]# :时间为分钟,#表示#分钟的这个时间点没有被改变,+#表示至少有#分钟没有被改变 , -#表示#分钟之内没有被改变

6)文件权限

-perm [+|-] MODE

不带[+|-]表示精确权限匹配,

+表示任何一类用户的任何一位权限匹配

- 表示每类用户的每位权限都匹配

find在查找标准时支持组合查找条件,在使用组合查找条件时要考虑优先级,优先级为顺序为非→与→或,在组合参数是想改变优先级可以用()来提升优先级。

-a (and) 与默认是与

-o (or) 或

-not,! 非

find的处理动作可以是:

-print 默认为输出

-ls 显示查找到的文件的详细信息

-ok COMMAND \; 要确认

-exec COMMAND \; 其中COMMAND中有对查找到的文件进行操作时,用{}来替代查找到的 文件,\;表示使用-exec的结束符,是固定格式; 使用-exec来出来查找的文件时,还可以通过管道送给xargs命令来解决,xargs在执行命令时,如果有对文件进行操作则用-i选项,{}也表示要操作的文件。


代码如下:


1、查找/var目录下属主为root并且属组为mail的所有文件;
find /var -user root -group mail
2、查找/usr目录下不属于root,bin,或student的文件;
find /usr -not \( -user root -o -user bin -o -user student \)
find /usr -not -user root -a -not -user bin -a -not -user student
3、查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件;
find /etc -mtime -7 -a -not -user root -a -not -user student
find /etc -mtime -7 -a -not \( -user root -o -user student \)
4、查找当前系统上没有属主或属组且最近1天内曾被访问过的文件,并将其属主属组均修改为root;
find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;
5、查找/etc目录下大于1M的文件,并将其文件名写入/tmp/etc.largefiles文件中;
find /etc -size +1M -exec echo {} >> /tmp/etc.largefiles \;
find /etc -size +1M >> /tmp/etc.largefiles
6、查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息;
find /etc -not -perm +222
7、删除类型不是目录,而且没有属主的文件;
find / -not -type d -a -nouser -exec rm -f {} \;
find / -not -type d -a -nouser | xargs -i rm -f {}

以上是"Linux中如何使用find命令"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

文件 时间 目录 少有 用户 命令 权限 标准 优先级 文件名 内容 动作 篇文章 处理 组合 代码 位置 信息 名称 多个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 国家网络安全宣传周亮点已整理 网络安全等级保护 山西 网络安全法的图片怎么画 windows服务器配额管理 华为路由器能做服务器吗 甘州区分局网络安全教育 网络安全和信息化管理研判会 软件开发行业都有哪些岗位 手机中的计算机网络技术 山东机客网络技术财宝通 苏州网络技术咨询介绍 软件开发平台的建立 机房服务器上传速度慢 卫生计生系统加强网络安全 数据库完全恢复的基本过程 阿里云深度学习服务器租赁 手机网络安全隐患排查治理 网络安全工作好找嘛 上海乐刻网络技术有限公司股东 信息网络安全监察的工资 中国石油网络安全技术 大学体测上报国家数据库 网络技术与通信技术有啥区别 合肥星蓝软件开发 免费frp服务器对比 数据库的综训目的 ftp服务器管理软件 正付网络技术有限公司 软件开发需求说明怎么写 我的世界最火热手机版服务器
0