首页 > 系统相关 >Linux基础命令-find

Linux基础命令-find

时间:2024-01-26 16:25:43浏览次数:17  
标签:文件 目录 命令 查找 Linux root find localhost

目录

Linux基础命令-find

实时查找工具,通过遍历指定路径下的文件系统完成文件查找
find命令的功能是用于根据给定的路径和条件查找相关文件或目录,参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能,是Linux系统运维人员日常工作必须掌握的命令之一。

find命令通常进行的是从根目录(/)开始的全盘搜索,有别于whereis、which、locate……等的有条件或部分文件的搜索。对于服务器负载较高的情况,建议不要在高峰时期使用find命令的模糊搜索,会相对消耗较多的系统资源。

一、工作特点:

  • 查找速度略慢
  • 精确查找
  • 实时查找
  • 可以满足多种条件匹配
find [路径] [选项]  [查找条件 + 处理动作]
查找路径:指定具体目录路径,默认是当前文件夹
查找条件:指定的查找标准(文件名/大小/类型/权限等),默认是找出所有文件
处理动作:对符合条件的文件做什么操作,默认输出屏幕

二、常用参数:

-name 匹配文件名
-perm 匹配文件权限
-uesr 匹配文件属主
-group 匹配文件属组
-mtime 匹配最后修改文件内容时间
-atime 匹配最后读取文件内容时间
-ctime 匹配最后修改文件属性时间
-nouser 匹配无属主的文件
-nogroup 匹配无属组的文件
-newer 匹配比指定文件更新的文件
-type 匹配文件类型
-size 匹配文件大小
-exec......{}; 对搜索结果执行命令
-ok......{}; 对搜索到的每个文件执行命令(需要确认)
-regex 使用正则表达式匹配文件名
-maxdepth/-mindepth 控制搜索的深度
-mount 不跨越文件系统挂载点进行查找

实际使用时可以根据man find来获取完整的文档和用法说明

三、练习:

1、查找/var目录下属主为root,且属组为mail的所有文件或目录

[root@localhost ~]# find /var -user root -group mail

image-20240126103512199

2、查找/usr目录下不属于root,bin或centos的所有文件或目录

[root@localhost ~]# find /usr ‐not ‐user root ‐a ‐not ‐user bin ‐a ‐not ‐user centos
[root@localhost ~]# find /usr ‐not \(‐user root ‐o ‐user bin ‐o ‐user centos \)

3、查找/etc目录下最近一周内容曾被修改过的文件或目录

[root@localhost ~]# find /etc -mtime -7

image-20240126105548003

4、查找当前系统上没有属主或属组,且最近一周内曾被访问过的文件或目录

[root@localhost ~]# find / \( -nouser -o -nogroup \) -a -atime -7

image-20240126110153097

5、查找/etc目录下大于1M且类型为普通文件的所有文件或目录

[root@localhost ~]# find /etc -size +1M -type f

image-20240126110323953

6、查找/etc目录下所有用户都没有写权限的文件

[root@localhost ~]# find /etc -not -perm /222

image-20240126111353019

7、查找/etc目录下至少一类用户没有执行权限的文件

[root@localhost ~]# find /etc -not -perm -111

8、查找/etc/init.d目录下,所有用户都执行权限,且其它用户写权限的文件

[root@localhost ~]# find /etc/init.d/ -perm -113

image-20240126113523359

9、查找 /root目录下所有扩展名为 .txt 的文件

[root@localhost ~]# find /root -name "*.txt"
[root@localhost ~]# find /root -regex '.*.txt'

image-20240126133925623

image-20240126133855693

10、查找 /home 目录下所有以 a 开头的文件

[root@localhost ~]# find /home -name "a*"

image-20240126134238672

11、查找 /home 目录下所有最近7天内修改过的文件

[root@localhost ~]# find /home -mtime -7

image-20240126134628417

12、查找 /home 目录下所有大小大于1MB的文件

[root@localhost ~]# find /home -size +1M

image-20240126141018249

13、查找 /root 目录下所有名 file 的文件,并列出它们的详细信息

[root@localhost ~]# find /root -name "file" -ls
[root@localhost ~]# find /root -name "file" -exec ls -lht {} \;

image-20240126141435446

14、查找 /home 目录下所有包含字符串 example 的文件

[root@localhost ~]# find /home -name "*example*"

image-20240126141755259

15、查找 /home 目录下所有属于用户 test01 的文件

[root@localhost ~]# find /home -user test01

image-20240126143023832

16、查找 /home 目录下所有属于组 test01 的文件

[root@localhost ~]# find /home -group test01

image-20240126143139063

17、查找 /etc 目录下所有文件名以 .conf 结尾的文件

[root@localhost ~]# find /etc -name "*.conf"

18、查找 /var/log 目录下所有最近30天内修改过的文件

[root@localhost ~]# find /var/log -mtime -30

image-20240126143636015

19、查找 /var 目录下所有大小小于50KB的文件

[root@localhost ~]# find /var -size -50k

20、查找 /home 目录下所有属于用户 test01 的文件,并按修改时间排序

[root@localhost ~]# find /home -user test01 -exec ls -lht {} \;

image-20240126144742819

21、删除/home目录下除了test01和test02以外的文件目录

[root@localhost home]# find /home -maxdepth 1 ! \( -name test01 -o -name test02 \) -type f -exec rm -rf {} +

image-20240126144523864

22、查找 /var 目录下所有以 .log 结尾的文件,并列出它们的详细信息。

[root@localhost ~]# find /var -name "*.log" -ls

image-20240126145005057

23、查找 /root 目录下所有名为file的文件并复制到/root/dir目录下

[root@localhost ~]# find /root -name "file" -exec cp {} /root/dir/ \;

image-20240126145734501

24、查找 / 目录下所有没有属主且没有属组的文件并移动到/root目录下

[root@localhost ~]# find / -nouser -a -nogroup -exec mv {} /root/ \;

标签:文件,目录,命令,查找,Linux,root,find,localhost
From: https://www.cnblogs.com/misakivv/p/17989569

相关文章

  • XtraFinder注册码
    序列号:————复制下面的部分———激活码:Email:[email protected] Serialnumber:GAWAE-FCADB-YNT7G-GBQZC-8UGVA-VFNRX-6U8DW-5WN9C-CQG48-PTR5T-798GS-ZFMJS-SNE5V-3LNRY-TXX4  卸载方法:删除:/Library/ScriptingAdditions/XtraFinderInjector.osax删除:/Sys......
  • Linux命令:usermod 修改用户账户
    usermod命令详细使用1.修改用户的『主目录』【-d/--home】$sudousermod-d/home/user111user11$sudousermod--home/home/user100user10此命令只会更新/etc/passwd文件中用户的『主目录』字段的值(七个字段中的第六个),不会创建这个目录,如果要创建这个目录,搭配-......
  • linux软件安装
     d代表文件夹-代表文件3位表示用户3表示用户主3其他用户r记为4,w记为2,x记为1,可以有:0:无任何权限1.仅有x---x2.仅有w权限-w-3.有w和x权限即-wx4.仅有r权限r--5.有r和x权限r-x6.有r和w权限rw-7.有全部权限rwxchmod515chmod326chown-r[用户】[:][用户组]......
  • jmeter 用命令执行jmx脚本
    前提:环境变量需要配置 cmd命令模式下,可以输入命令 jmeter-n-tD:\jmeterplan\meter.jmx-lD:\result\meter.jtl-e-oD:\jmeterplan\result ......
  • linux系统开机systemctl自动启动项目服务
    前言作为一名开发人员,都会懂一些服务器相关知识。对于项目部署时,自动启动应该是最基本的,之前都是使用inid来进行开机服务。而今systemctl服务逐渐取代前者。本篇简单记录一下systemctl服务的一些配置以及命令。一、关于systemctl命令下面以nginx服务为例systemctlenab......
  • 【VMware vSAN】使用命令行从vSAN集群中移除ESXi主机并加入到新的vSAN集群。
    说明本文只是陈述了一种方法,不必评判谁对谁错谁好谁坏,选择适合自己的即可。 环境站点名称vCenter版本vSAN集群集群主机主机版本磁盘组vcsa67.lab.comvCenter6.7U3clusteresxi-b1.lab.comesxi-b2.lab.comesxi-b3.lab.comesxi-b4.lab.comESXi6.7U3......
  • kafka常用命令
    mac本地安装kafkabrewinstallkafka启动zookeeper、kafkabrewservicesstartzookeeperbrewservicesstartkafka创建一个topickafka-topics--create--bootstrap-serverlocalhost:9092--replication-factor1--partitions3--topictest_1创建一个生产者produce......
  • 在Linux Ubuntu系统中部署C++环境与Visual Studio Code软件
      本文介绍在LinuxUbuntu操作系统下,配置VisualStudioCode软件与C++代码开发环境的方法。  在文章VMware虚拟机部署LinuxUbuntu系统的方法中,我们介绍了LinuxUbuntu操作系统的下载、安装方法;本文则基于前述基础,继续介绍在LinuxUbuntu操作系统中配置VisualStudioCode软......
  • Linux磁盘动态扩容
    添加磁盘磁盘分区查看机器所挂硬盘个数及分区情况fdisk-l对磁盘进行分区fdisk/dev/sdc增加一个新的分区列出分区表指定分区类型检查分区信息后保存退出扩容查看物理卷创建物理卷查看卷组vgdisplay将磁盘分区加入到卷组vgextendcentos/dev/sdc1......
  • Linux图形栈概述
    Linux图形栈概述图形渲染相关概念https://www.x.org/wiki/Development/Documentation/Glossary/直接渲染架构DRIDRI(DirectRenderingInfrastructure):是现代Linux上的图形栈架构,允许用户态程序直接向图形硬件发出命令,主要用途是为OpenGL的Mesa提供硬件加速。零拷贝零拷......