linux小结之一:常见文件查找方法

linux文件查找主要是locate、find.

locate

locate主要查找速度快,实时,但需要依赖系统文件数据库,而这个文件数据库需要手动生成:updatedb.

find用法

实时,精确,有众多查找标准,它遍历指定目录的所有文件完成查找,速度慢。

语法:

find  查找路径  查找标准  查到后处理command

查找路径:默认为当前目录

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

处理动作:默认为显示

匹配标准:

-name “filename”:对文件名进行精确匹配

文件名通配:

*:任意长度任意字符

?:

[]

-iname “filename” :文件名不区分大小写。‘

-regex  pattern  :基于正则表达式进行文件名匹配

-user User :属主属于user用户的文件

-group group 根据属组查找

-uid UID

-gid GID

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

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

-type

f:普通文件

d:目录

c:字符设备

b:块设备,二进制文件

l:链接文件

p:管道文件

s:套接字文件

-size

[+|-]#k

#M

#G

组合条件:【默认就是与条件】

-a 与条件

-o 或条件

-not 非条件

时间

-mtime修改时间

-ctime  改变时间

-atime  访问时间

[+|-]#

-perm

mode  精确查找

-mode  文件权限能完全包含此mode时才符合条件

/mode  任意一位能匹配就行

-ok command {} \;  每一次都需要用户确认

-exec command {}  \;

常见案例练习

[[email protected] test]# find /etc/ -size +1M | xargs >> /tmp/etc.largefiles

1.查找/var目录下属主为root并且属组为mail所有文件

[[email protected] test]# find /var/ -user root -group mail > /tmp/var.rootmail.file

2.查看/usr/目录下不属于root,bin,或student的文件

[[email protected] test]# find /usr/ -not \( -user root -o -user bin -o -user student \) -exec ls -al {} \;

-rwsr-xr-x. 1 abrt abrt 9856 Jan 24  2013 /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache

3.查找/etc/目录下最近一周内内容修改过且不属于root及student用户的文件

[[email protected] ~]# find /etc/ -mtime -7 -a -not \( -user root -o -user student \)

[[email protected] ~]# find /etc/ -mtime -7 -not -user root -a -not -user student

4.查找当前系统上没有属主或属组且最近一天曾被访问的文件,并将其属主属组修改为root

[[email protected] ~]# find / -atime -1 -nouser -nogroup | xargs chown  root:root {} \;

5.查找/etc/目录下大于1M的文件,并将其写入/tmp/etc.arggefile

[[email protected] ~]# find /etc/ -size +1M  >> largefile

6.查找/etc/目录下所有用户都没有写权限的文件,显示其详细信息

[[email protected] ~]# find /etc/ -not -perm /222

时间: 2024-10-11 06:50:05

linux小结之一:常见文件查找方法的相关文章

linux下的find文件查找命令与grep文件内容查找命令

linux下的find文件查找命令与grep文件内容查找命令 在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等. (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找. 一.find命令 基本格式:find  path expression 1.按照文件名查找 (1)find / -

Linux中逐行读取文件的方法

  Linux中逐行读取文件的方法             在linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法.为了给大家一个直观的感受,我们将通过生成一个大的文件的方式来检验各种方法的执行效率. 方法1:while循环中执行效率最高,最常用的方法. function while_read_LINE_bottm(){ While read LINE do echo $LINE done   < $FILENAME } 注释:我习惯把

Linux shell逐行读取文件的方法

Linux shell逐行读取文件的方法 在Linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法.为了给大家一个直观的感受,我们将通过生成一个大的文件的方式来检验各种方法的执行效率. 方法1:while循环中执行效率最高,最常用的方法. function while_read_LINE_bottm(){ While read LINE doecho $LINEdone  < $FILENAME}         注释:我习惯把这种方式叫

【Linux相识相知】文件查找(locate/find)

在用linux操作系统的时候,当我们忘记之前某个文件存储的位置,但是知道其文件名或者模糊的知道其文件名,我们都可以通过文件查找工具来查找,linux提供两种常用的查找工具,locate和find,在日常使用中后者比前者较前者功能更强大更具有实时性,下面我们就这两种工具来谈一谈她们的使用方法. Locate locate是基于实现构建好的索引库(索引库可以理解成文件路径的集合),索引库的位置放在/var/lib/mlocate/mlocate.db文件里面,系统一般一天会自动更新一次,也可以使用u

Linux的下的文件查找命令find

Linux下有几种查找文件命令: Which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置. find 实际搜寻硬盘查询文件名称. 每种命令都有他特定的功能, which命令的作用是,在PATH变量指定的路径中,搜索某个系 统命令的位置,并且返回第一个搜索结果. whereis命令只能用于程序名的搜索,而且只搜索二进制文件 (参数-b).man说明文件(参数-m)和源代码文件(参数-s). locate 让使用者可以很快速的搜寻档案系统内是否有指

Linux 系统的下文件查找

Linux 系统下文件查找 1.which (1)作用:用于查找并显示给定命令的绝对路径 (2)语法:which(选项)(参数) (3)案例: [[email protected] ~]# which cd       #查找cd命令的路径 /usr/bin/cd [[email protected] ~]# which cp       #查找cp命令的路径 alias cp='cp -i' /usr/bin/cp 2.whereis (1)作用:来定位指令的二进制程序.源代码文件和man手册

linux下find(文件查找)命令的用法总结

前言:我们为什么要学会使用find命令? 每一种操作系统都有成千上万的文件组成,对于linux这样“一切皆文件”的操作系统来说更不例外,大家应该都能很轻松使用windows下的文件查找功能,但是对linux这一功能可能并不是很熟悉,其实想玩linux的你更要牢牢掌握这个命令,因为linux不像windows那样有固定的文件名后缀,并且因为linux阵营下百家争鸣的特性,一个相同的文件在不同的发行版,可能会有不同,所以如果你能牢牢掌握find命令的使用,你在摸索linux的道路上将会顺利很多,同时

linux十三章find文件查找

之前有介绍过文本查找的grep命令: 文件查找的有三种方法: 1)locate:非实时,模糊匹配,查找是跟进全系统文件数据库进行的,因此将所有包含关键字的内容都遍历可以说是很费时间的查找方法 2)#updatedb:它是手动生成文件数据裤,速度快,依赖于数据库,按时更新 3)find:它是实时精准,支持众多查找标准,遍历指定目录的所有文件,速度慢 find 查找路径-查找标准,查找后的处理工作 栗子:#:find /etc 'passwd‘ 指查找etc目录下的所有包含passwd的文件 匹配标

【Linux学习013】文件查找

一.文件查找命令分类 1.locate命令 该命令是非实时的,模糊匹配,查找是根据全系统文件数据库进行的,速度比较快:可以自己定义更新数据库的策略,也可以使用updatedb命令手动生成或者更新文件数据库:该命令不经常使用. 2.find命令 该命令是实时的,精确查找,遍历所有目录中的所有文件完成查找,速度比较慢,但是支持众多的查找标准,是最经常使用的文件查找命令. 3.find命令的使用格式: find 查找路径 查找标准 查找到以后的处理动作 查找路径:默认为当前目录 查找标准:默认为指定路