Linux find命令:在目录中查找文件(超详解)

本文详细介绍了Linux中的find命令,包括按照文件名、大小、修改时间、权限、所有者和组、文件类型进行搜索,以及使用逻辑运算符。通过实例演示了find命令的用法,强调了完全匹配的特性、单位大小的注意事项,以及如何通过权限模式、所有者和组、文件类型等进行精确搜索。同时提到了-exec和-ok选项在处理搜索结果时的用途。
摘要由CSDN通过智能技术生成

find 是 Linux 中强大的搜索命令,不仅可以按照文件名搜索文件,还可以按照权限、大小、时间、inode 号等来搜索文件。但是 find 命令是直接在硬盘中进行搜索的,如果指定的搜索范围过大,find命令就会消耗较大的系统资源,导致服务器压力过大。所以,在使用 find 命令搜索时,不要指定过大的搜索范围。

 

find 命令的基本信息如下:

  • 命令名称:find。
  • 英文原意:search for files in a directory hierarchy.
  • 所在路径:/bin/find。
  • 执行权限:所有用户。
  • 功能描述:在目录中查找文件。

命令格式

[root@localhost ~]# find 搜索路径 [选项] 搜索内容

find 是比较特殊的命令,它有两个参数:

  • 第一个参数用来指定搜索路径;
  • 第二个参数用来指定搜索内容。

而且find命令的选项比较复杂,我们一个一个举例来看。

按照文件名搜索

[root@localhost ~]#find 搜索路径 [选项] 搜索内容

选项:

  • -name: 按照文件名搜索;
  • -iname: 按照文件名搜索,不区分文件名大小;
  • -inum: 按照 inode 号搜索;

这是 find 最常用的用法,我们来试试:

[root@localhost ~]# find /-name yum.conf
/etc/yum.conf
#在目录下査找文件名是yum.conf的文件

但是 find 命令有一个小特性,就是搜索的文件名必须和你的搜索内容一致才能找到。如果只包含搜索内容,则不会找到。我们做一个实验:

[root@localhost ~]# touch yum.conf.bak
#在/root/目录下建立一个文件yum.conf.bak
[root@localhost ~]# find /-name yum.conf
/etc/yum.conf
#搜索只能找到yum.conf文件,而不能找到 yum.conf.bak 文件

find 能够找到的是只有和搜索内容 yum.conf 一致的 /etc/yum.conf 文件,而 /root/yum.conf.bak 文件虽然含有搜索关键字,但是不会被找到。这种特性我们总结为:find 命令是完全匹配的,必须和搜索关键字一模一样才会列出。

Linux 中的文件名是区分大小写的,也就是说,搜索小写文件,是找不到大写文件的。如果想要大小通吃,就要使用 -iname 来搜索文件。

[root@localhost ~]# touch CANGLS
[root@localhost ~]# touch cangls
#建立大写和小写文件
[root@localhost ~]#find.-iname cangls
./CANGLS
./cangls
#使用-iname,大小写文件通吃

每个文件都有 inode 号,如果我们知道 inode 号,则也可以按照 inode 号来搜索文件。

[root@localhost ~]#ls -i install.log
262147 install.log
#如果知道文件名,则可以用"ls -i"来査找inode号
[root@localhost ~]# find.-inum 262147
./install.log
#如果知道inode号,则可以用find命令来査找文件

按照 inode 号搜索文件,也是区分硬链接文件的重要手段,因为硬链接文件的 inode 号是一致的。

[root@localhost ~]# ln /root/install.log /tmp/
#给install.log文件创建一个硬链接文件
[root@localhost ~]#ll -i /root/install.log /tmp/install.log
262147 -rw-r–r–.2 root root 24772 1 月 14 2014/root/
install.log
262147 -rw-r–r–.2 root root 24772 1 月 14 2014/tmp/
install.log
#可以看到这两个硬链接文件的inode号是一致的
[root@localhost ~]# find /-inum 262147
/root/install.log
/tmp/install.log
#如果硬链接不是我们自己建立的,则可以通过find命令搜索inode号,来确定硬链接文件

按照文件大小搜索

[root@localhost ~]#find 搜索路径 [选项] 搜索内容

选项:

  • -size[+-]大小:按照指定大小搜索文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值