首页 > 系统相关 >12.Linux当中如何搜索文件,find详解,示范

12.Linux当中如何搜索文件,find详解,示范

时间:2024-09-03 12:23:41浏览次数:10  
标签:文件 12 -- zaishu 查找 Linux root find


在Linux当中查找文件的命令但多,但个人觉得最重要的搜索文件的命令是find,这个命令使用非常频繁,需要熟练掌握


文章目录

  • 前言
  • find 使用详解
  • 1.介绍
  • 2.语法详解
  • 3. find 选项示例(option)
  • 4、可选项
  • 总结
  • 友情链接



前言


在Linux当中查找文件的命令但多,但个人觉得最重要的搜索文件的命令是find,这个命令使用非常频繁,需要熟练掌握


find 使用详解

1.介绍

在Linux当中查找文件的命令但多,但个人觉得最重要的搜索文件的命令是find,这个命令用来特别频繁,需要熟练掌握

2.语法详解

1. 语法概览

find path -option [-print] [-exec -ok command] {} \;

2. path
path: 所查找的目录路径。例如用.来表示当前目录,…上级目录,/开头就是绝对路径等。

3.-option

选项

用途

-name filename

#查找名为filename的文件

-perm

#按执行权限来查找

-user username

#按文件属主来查找

-group groupname

#按组来查找

-mtime -n +n

#按文件更改时间来查找文件,-n指n天以内,+n指n天以前

-atime -n +n

#按文件访问时间来查GIN: 0px"> 找文件,-n指n天以内,+n指n天以前

-ctime -n +n

#按文件创建时间来查找文件,-n指n天以内,+n指n天以前

-nogroup

#查无有效属组的文件,即文件的属组在/etc/groups中不存在

-nouser

#查无有效属主的文件,即文件的属主在/etc/passwd中不存

-newer f1 !f2

#查更改时间比f1新但比f2旧的文件

-type b/d/c/p/l/f

#查是块设备、目录、字符设备、管道、符号链接、普通文件

-size n[c]

#查长度为n块[或n字节]的文件

-depth

#使查找在进入子目录前先行查找完本目录

-fstype

#查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到

-mount

#查文件时不跨越文件系统mount点

-follow

#如果遇到符号链接文件,就跟踪链接所指的文件

-cpio

#查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到

-prune

#忽略某个目录

4. [-print]
这个选项可以不用指定,默认就是输出到屏幕。

5. [-exec -ok command] {} ;
这也是可选项,使用exec或ok来执行shell命令,查找出的文件作为输入。
exec: 表示要执行command命令
ok:也是运行command命令,只是在执行之前会先提示是否需要执行
{}: 大包括表示的就是查找出的文件
; 表示执行

选项

用途

exec

执行 command命令

ok

执行command前,需要提示是否执行

{}

代表查找出的所有文件

\;

执行

3. find 选项示例(option)

find命令最重要的就是查找需要的文件,可以通过特定选项来选择需要找的文件。

1. 按文件名查找

[root@prometheus ~]# find / -name err
/root/err

2. 按文件权限查找
Linux文件权限可以参照权限这一章节的具体知识(读写执行)。

[root@prometheus zaishu]# chmod 444 test
[root@prometheus zaishu]# ls -l
total 12
-rw-r--r-- 1 root root 52 Nov  4 20:25 abc.txt
-rw-r--r-- 1 root root 20 Nov  4 20:29 append.txt
-r--r--r-- 1 root root 70 Nov  4 20:21 test
[root@prometheus zaishu]# find . -perm 444 
./test

查找包含sgid权限的文件

[root@zaishu zaishu]# find / -perm /g+s 
...
/usr/bin/wall
...
[root@zaishu zaishu]# ll /usr/bin/wall 
-r-xr-sr-x. 1 root tty 15344 Jun 10  2014 /usr/bin/wall

3. 按用户属主查找

[root@prometheus zaishu]# useradd mysql
[root@prometheus zaishu]# chown mysql append.txt
[root@prometheus zaishu]# find . -user mysql 
./append.txt

4. 按文件时间查找
find path -mtime|atime|ctime +n(-n);
这个选项用的非常频繁,在服务器当中经常需要清理归档文件,用这个选项来查找出时间较久远的文件进行删除。
文件的时间属性有三个包括 mtime atime ctime 分别代表 文件据修改时间 文件访问时间 文件状态修改时间 文件改变时间 这三个时间可参照 时间属性讲解 -n指n天以内
+n指n天以前

查找2天内修改过数据的文本

[root@zaishu log]# find . -mtime -2
.
./lastlog
./wtmp
./audit/audit.log
./vmware-vmsvc-root.log
./cron
./messages
./vmware-network.log
./secure

[root@zaishu log]# stat lastlog 
  File: ‘lastlog’
  Size: 292876    	Blocks: 40         IO Block: 4096   regular file
Device: 803h/2051d	Inode: 33858129    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-11-11 13:56:27.138009098 +0800
Modify: 2021-11-11 13:56:27.396009100 +0800
Change: 2021-11-11 13:56:27.396009100 +0800
 Birth: -

5. 查找文件类型为目录

[root@zaishu SQLAdvisor-master]# find . -type d
.
./client
./cmake
./cmake/build_configurations
./cmake/os
./dbug
./dbug/CMakeFiles
./dbug/CMakeFiles/dbug.dir
./doc
./doc/img
./extra
./extra/CMakeFiles
./extra/CMakeFiles/CMakeRelink.dir
./extra/CMakeFiles/GenError.dir
./extra/CMakeFiles/comp_err.dir
./extra/CMakeFiles/perror.dir
./extra/yassl
./extra/yassl/CMakeFiles
./extra/yassl/CMakeFiles/yassl.dir
./extra/yassl/CMakeFiles/yassl.dir/__
./extra/yassl/CMakeFiles/yassl.dir/__/__
./extra/yassl/CMakeFiles/yassl.dir/__/__/client
./extra/yassl/CMakeFiles/yassl.dir/src
./extra/yassl/certs
...

4、可选项

1. 最简单的find
find语法:find path
当执行find时,不输入-option [-print] [-exec -ok command] {} ; 时。 find path表示的是列出目录下所有文件,也包含子目录下的文件。

[root@prometheus zaishu]# find .
.
./test
./abc.txt
./append.txt

2.使用[-print]
查找根目录下名字为err的文件
通常的写法

[root@prometheus ~]# find / -name err
/root/err

上面的写法其实等同与带上了[-print],将结果输出到屏幕

[root@prometheus ~]# find / -name err -print
/root/err

3. -exec command {} ;

将查找出的文件,作为后面命令输入。 将查找出的文件用ls -l 详细查看

[root@prometheus zaishu]# find . -type f -exec ls -l {} \;
-rw-r--r-- 1 root root 70 Nov  4 20:21 ./test
-rw-r--r-- 1 root root 52 Nov  4 20:25 ./abc.txt
-rw-r--r-- 1 root root 20 Nov  4 20:29 ./append.txt

4. -ok command {} ;
将查找出的文件,作为后面命令输入;不过在命令之前,需要先提示是否执行。

[root@zaishu zaishu]# find . -type f -ok rm -rf {} \;
< rm ... ./test > ? y
< rm ... ./test2 > ? y
< rm ... ./test3 > ? y

5. 执行命令可以用xargs 代替
xargs可参照这条命令的单独讲解,它是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。

[root@zaishu zaishu]# ls
test1  test2  test3
[root@zaishu zaishu]# find . -type f | xargs rm 
[root@zaishu zaishu]# ls

5. 删除7天前的数据

find /home/ -type f -mtime +7 -exec rm -f {} ;


总结

在Linux当中查找文件的命令但多,但个人觉得最重要的搜索文件的命令是find,这个命令用来特别频繁,需要熟练掌握。


标签:文件,12,--,zaishu,查找,Linux,root,find
From: https://blog.51cto.com/zaishu/11907838

相关文章

  • Linux配置软路由
    假设出口网口是end0,入口网口是end1:outdev=end0indev=end1#子网不要与其他interface的IP重合prefix=10.233.233配置出口网口IP#nmclidevset$indevmanagednoiplinksetupdev$indevipaddradd$prefix.1/24dev$indev配置DHCPaptinstallisc-dhcp-servercp......
  • Linux的目录结构
    1.登录虚拟机用户名:root 密码:0412327右键打开终端二.Linux的基本命令ls 查看当前目录信息pwd   查看当前路径-->查看你在哪里? /root:主目录相当于手机里面home键 mkdir 创建目录,新建文件夹Shell命令格式: 命令+选项+路径(参数)      在......
  • Linux的基本命令
    1.linux的版本 Ubuntu、CentOS、Redhat、Debian、suse-Linux、鸿蒙(HarmonyOS)。鸿蒙系统是一款全新的面向全场景的分布式操作系统,以手机操作为主,链接汽车、智能音箱、可穿戴等设备的分布式操作系统。与Android等系统具有根本性不同,HarmonyOS创新多设备交互,让消费者操控多个......
  • 【日记】领导和领导之间差距还挺大(1223 字)
    正文今天属实体验到了一波领导和领导之间的差距。7,8,9,10号公休,今天省分行突然发通知,说信贷人员上岗资格考试9.7号下午考。我上午10:30从成都飞哈尔滨的机票。假条都批了。我跑去跟副行长汇报,副行长直接跟我说,那你能克服的还是克服一下,改签吧,考完再去公休。我问改......
  • 5分钟部署Prometheus+Grafana批量监控Linux服务器
    文章目录一键安装NodeExporter安装prometheus创建数据存储目录创建配置文件下载运行Prometheus安装Grafana创建数据目录下载运行Grafana配置Grafana监控Linux服务器登录首次登录后设置密码添加数据源选择prometheus填写prometheus地址导入模板辛苦您也关注下公众号,感谢!本文......
  • 让 Linux 拥有回收站:轻松找回误删文件的完美解决方案
    文章目录让Linux拥有回收站:轻松找回误删文件的完美解决方案方案设计编写`trash`脚本定期清理回收站总结辛苦您也关注下公众号,感谢!让Linux拥有回收站:轻松找回误删文件的完美解决方案在Linux系统中,使用rm命令删除文件后,文件通常会被直接从系统中移除,难以恢复。为了避......
  • 告别无进度等待:Linux系统中为cp和mv命令加上实时进度条
    文章目录告别无进度等待:Linux系统中为cp和mv命令加上实时进度条一、advcpmv简介二、advcpmv的优势三、安装advcpmv3.1前置准备3.2设置环境变量3.3下载并安装3.4手动安装步骤3.5配置别名四、使用advcpmv4.1查看帮助信息4.2实际操作五、总结辛苦您也关注下公众号,感谢!告......
  • 2024Hvv漏洞汇总(128个POC)
    2024Hvv漏洞整理(128个POC)​(网上漏洞零零散散)下面是收集到的且有POC的漏洞整理合集,鄙人分了三种格式供各位提取,下面贴上目录与图片,由于字数有点大,各位请移步网盘自行提取。按照Hvv时间线进行汇总每天爆出的漏洞(非最全Hvv漏洞)提前总结:各位道友可移步到我的公众号(公众号同名搜......
  • 在Linux中使用C++调用Python程序
    为什么要用C++调Python我们训练部署CNN模型时,服务器用Pytorch测试的精度比我们部署端精度高0.5%。经过多方排查,发现是由于Pytorch预处理图片使用PIL进行图片读取和尺寸调整,但是部署端采用OpenCV进行图片读取和尺寸调整。两种实现方式实现的Resize操作差异非常大。为了快速完成项......
  • 惠海H6900B 12V升压24V 60V 5V升压12V芯片 DC-DC LED恒流驱动IC 300W大功率
    H6900B是一款高效率、稳定可靠的升压型LED恒流驱动芯片,适用于多个高亮度LED灯串的恒流驱动。以下是关于该产品的详细解析:产品特征:内置耐压60V功率NMOS,可直接处理60V电压,无需额外升压电路。输入电压范围2.7V-48V,兼容多种电源类型。效率高达95%以上,降低能耗,延长电池寿命。工作频率1MH......