Linux下的find用法

想一下我们为什么要熟悉Find命令呢?
Whereis和locate都可以用来查找,但是这两个是通过数据库来查因为没有实际查询硬盘所以相当快速,但是也会有其他问题
1)whereis命令只能用于程序名的搜索,而且只搜索二进制文件,man说明文件和源代码文件(省略参数时返回所有信息)
2)Whereis查找的快是因为Linux系统会将系统内所有文件都记录在一个数据库中,当使用Whereis和locate时,会从数据库中查找数据,而不是像find那样,通过遍历硬盘来查找。但是 数据库文件并不是实时更新,默认情况下一星期更新一次,因此用locate和Whereis时有时会找到已经删除的数据或刚刚建立的新文件会找不到,所以虽然find速度慢,但是确实最有效的
1.按文件名查找
如果你把这个文件放在单个的文件夹里面,只要使用常见的“ls”命令就能方便的查找出来,那么使用“find”命令也就没什么卵用。但如果知道了某个文件的文件名,而忘记了放到哪个文件夹,甚至是层层套嵌的文件夹里。举例说明,假设你忘记了plugins这个文件在系统的哪个目录下,甚至在系统的某个地方也不知道,则这是可以使用
$ find / -name test
这里写图片描述

就是直接在find后面写上 -name,表明要求系统按照文件名查找,最后写上目标文件名即可,然后便会显示它的完整路径。
2.无错误查找技巧:
在Linux系统中“find”命令是大多数系统用户都可以使用的命令,并不是ROOT系统管理员的专利。但当Linux系统中系统管理员ROOT把某些文件目录设置成禁止访问模式。普通用户就没有权限用“find”命令来查询这些目录或者文件。当普通用户使用“find”命令来查询时会显示”Permissiondenied.”

为了避免这样的错误,我们可是使用转移错误提示的方法尝试着查找文件,输入 find / -name 文件名 2>/dev/null 这个方法是把查找错误提示转移到特定的目录中去。/dev/null是一个特殊的文件,表明空的或者错误的信息,这样查询到的错误信息将被转移了。
$find -name group 2>/dev/null
这里写图片描述
3.条件查询
在Linux系统下如果在整个硬盘中查找某个文件就要花费相当长的一段时间,特别是大型Linux系统和容量较大的硬盘,文件放在套嵌很深的目录中的时候。但如果知道这个文件存放在某个大的目录中,可使用[find /大目录名 -name 目标文件名] 就可以解决这个问题。
$ find /home -name test
这里写图片描述
上面的命令就是表示在home目录中查询。“/ ”这个函数符号的含义,如果输入 “find/ ”就是表示要求Linux系统在整个ROOT目录下查找文件,也就是在整个硬盘上查找文件,而“find/home”就是只在 home目录下查找文件,所以查找的速度就相应要快很多了。
4.根据部分文件名查找方法:这个方法和在WINDOWS中查找已知的文件名方法是一样的。。
根据文件的特征查询方法:
(1).例如我们知道一个Linux文件大小为1,500 bytes,则
$find / -size 1500c,字符 c 表明这个要查找的文件的以bytes为单位。
这里写图片描述
(2).不知道文件大小
$find / -size +/-数字(+表示大于这个数字的;-表示小于这个数字大小的)c表示这个文件以字节为单位
这里写图片描述

5.与时间有关的参数 -atime -mtime -ctime
以-time为例说明
$ find -mtime n:n是数字,标记在n天之前的一天之内的被修改的文件
这里写图片描述
findmtimen:nn find -mtime -n :表示在n天之前(含n天本身)被改过的文件
这里写图片描述
$find / -mtime 0 将过去系统上面24小时有改动的文件列出(0代表目前事件,例如换成3就是三天前的24小时)

6.与用户或用户组名有关的参数
-uid n:n为数字,这个数字是用户的帐号id,即UID
-gid n:n为数字,这个数字是用户组的帐号id,即GID
-user name :name为用户帐号名称
-nouser:寻找文件所有者不在/etc/passed 的人
-no group:寻找文件所有用户组不在/etc/passed 的人
7.与文件权限或名称有关的参数
-type TYPE:查找文件类型为b块设备文件的
这里写图片描述
-perm mode :查找文件权限刚好为mode的
这里写图片描述
-perm -mode:查找文件权限,必需全部包含mode的
-perm +mode:查找文件权限,包含任一mode的
8.其他可进行操作
-exec comm 的:comma为其他命令,接其他命令来处理查找到的结果
例如可加ls-l,不能加ll,这个命令不支持命令别名
-print:默认将结果打印到屏幕上的操作

### 回答1: find命令是Linux系统中的一个非常强大的文件搜索工具,它可以根据指定的条件在指定的目录下查找文件,并返回符合条件的文件列表。find命令的基本语法如下: find [path] [expression] 其中,path表示要搜索的目录路径,expression表示要搜索的条件表达式。常用的条件表达式包括: -name:按照文件搜索 -type:按照文件类型搜索 -size:按照文件大小搜索 -mtime:按照文件修改时间搜索 -exec:对搜索到的文件执行指定的命令 例如,要在当前目录下查找所有扩展为.txt的文件,可以使用以下命令: find . -name "*.txt" 其中,.表示当前目录,-name表示按照文件搜索,*.txt表示文件以.txt结尾。 另外,find命令还支持一些高级用法,如使用逻辑运算符(-a表示与,-o表示或)组合多个条件表达式,使用-prune排除某些目录等。需要注意的是,find命令搜索文件时会递归搜索子目录,因此在使用时要谨慎,避免搜索到不必要的文件。 ### 回答2: 在Linux操作系统中,find命令被广泛使用于查找文件或目录。它可以对指定目录下的所有文件进行搜索,且搜索的结果可以根据用户提供的多个条件进行过滤。 find命令的基本用法: 1. find [路径] [选项] [表达式] -路径:需要查找的目录或文件路径。 -选项:find命令提供了许多选项以帮助用户过滤搜索结果,常用的选项如下: -name:按照文件搜索。 -type:按照文件类型搜索。 -user:按照文件拥有者搜索。 -size:按照文件大小搜索。 -ctime:按照文件创建时间搜索。 -mtime:按照文件修改时间搜索。 -表达式:用于搜索结果的进一步过滤。 2. find /path/to/dir -name "file_name" 该命令会在指定目录下查找文件为file_name的文件。 3. find /path/to/dir -type f -name "*.txt" -user john 该命令会在指定目录下查找文件类型为普通文件(-type f),文件以.txt结尾(-name "*.txt"),拥有者为john(-user john)的文件。 4. find /path/to/dir -type d -mtime +7 -exec rm -rf {} \; 该命令会在指定目录下查找7天前修改过的目录,并且执行删除操作。其中,-type d表示查找目录,-mtime +7表示修改时间大于7天,-exec rm -rf {} \;表示执行相应的删除操作。 总的来说,find命令的使用方法比较灵活多样,需要根据具体需求进行调整。在日常使用中,可以通过find命令根据不同的条件快速查找到所需的文件或目录,提高工作效率。 ### 回答3: Linux系统中的find命令是一种强大的文件查找工具,它可以在指定目录下查找匹配的文件,并可以根据一定的条件进行进一步筛选和操作。这里我们就来详细介绍一下Linux下find命令的用法。 一、基本语法 find命令的基本语法如下: find path -option [expression] 其中,path表示要查找的目录路径,option是可选参数,expression是查找的表达式或选项。 二、常用选项 1. -name:按照文件查找,可以使用通配符;例如: find /etc -name "passwd" 查找/etc目录下为passwd的文件 find /etc -name "*.conf" 查找/etc目录下以.conf结尾的文件 2. -type:按照文件类型查找;例如: find / -type d 查找根目录下所有文件夹 find / -type f 查找根目录下所有文件 3. -size:按照文件大小查找;例如: find / -type f -size +1M -size -10M 查找根目录下大小在1M到10M之间的文件 4. -mtime:按照修改时间查找;例如: find / -type f -mtime -7 查找根目录下在7天以内修改过的文件 5. -user:按照文件所属用户查找;例如: find / -type f -user root 查找根目录下属于root用户的文件 三、常用表达式 1. -exec:在查找到的文件上执行特定命令;例如: find / -type f -name "*.txt" -exec rm {} \; 查找根目录下所有以.txt结尾的文件并删除 2. -print:将查找到的文件输出到屏幕上;例如: find / -type f -name "*.jpg" -print 查找根目录下所有以.jpg结尾的文件并输出到屏幕上
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值