linux中的文件查找命令

linux中文件查找常用的有两个命令,分别是locate和find。

#locate 根据locate数据库查找,不是实时查找,不是精确查找.速度比较快

#find 不根据数据库查找,实时查找,遍历目录查找,精确查找,速度慢.

# locate 要查找的关键字

-n 只显示被匹配到的前10行.

-c 统计被匹配到的结果总共有多少.

locate是根据locate数据库进行查找的,所以速度比较快,如果一个文件刚存入linux系统,然后用locate进行查找,有可能会查找不到,因为locate的数据库里面,还没有该文件的相关记录,这时候,我们就需要手动更新locate的数据库,使用命令

updatedb   将手动生成locate命令所依赖的数据库

find [dir,...] [criteria,...] [action...]

如果[dir]省略,就是当前路径.如果find后面不跟任何参数,会把当前目录里的所有文件及目录全部显示出来,包括隐藏文件

action的默认动作为显示到屏幕上.

criteria 查找标准

-name 指定文件名.还支持globbing方式的文件名通配

find /etc/ -name "passwd?"

find /etc/ -name "*passwd*"

-iname 忽略文件名中的文件名大小写.

-regex "PATTERN" 查找文件名中符合PATTERN中的文件,支持正则.

-user USERNAME 基于用户查找(查找属于某个用户的文件)

-group GROUP_NAME

find /tmp -user redhat | ls -l 这样不行,因为find的传递机制跟普通命令不太一样

ll `find /tmp -user redhat` 这样是可以的,引用命令.

-uid UID 基于用户的ID号查找

-gid GID 基于组的ID号查找.

-nouser 查找所有的,没有属主的文件

-nogroup 查找所有的,没有属组的文件

-type 指定类型进行查找

f 普通文件

d 目录

l 软连接文件

b 块设备

c 字符设备

p 管道文件

s 套接字文件

组合条件:

-a

-o

-not

-size 指定文件大小

10M 大小为10M的(9-10M的都符合,10M以上和9M以下不符合)

-10M 小于10M的

+10M 大于10M的

-atime 根据文件的访问时间(单位为天)

-mtime 根据文件的修改时间 (单位为天)

-ctime 根据文件的改变时间(单位为天)

-amin 根据文件的访问时间(单位为分钟)

-mmin 根据文件的修改时间(单位为分钟)

-cmim 根据文件的改变时间(单位为分钟)

time 的默认时间为天,min的默认单位为分钟.

例:

-atime 3 距离现在,刚好3天没访问的文件

-atime -3 3天以内被访问的文件

-atime +3 已经超过3天没被访问的文件

-perm 755 根据文件的权限进行查找.

+755|/755 其中任何一类用户满足其权限都可以. /444 任何一类用户有读权限都可以.

-755, 每一类用户都必须要满足条件.

Ctrl+a 跳到命令的首部.

Ctrl+e 跳到命令的尾部.

action:

-print 把匹配到的结果打印到屏幕(默认动作,可省略.)

-ls 以长格式显示文件信息

-ok COMANDN {} \; 查找到文件后,执行指定命令(提醒确认)

-exec COMMAND {} \; 查找到文件后,执行指定命令(不提醒确认)

-exec rm {} \; 删除查找到的文件 {}表示引用前面查找到的文件,\;表示命令到此结束

-exec mv {} {}.txt \; 把查找到的文件重命名,在原有的名字后面加上.txt的扩展名

下面做几个练习题

练习:

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

[[email protected] scripts]# find /var -user root -group mail

/var/spool/mqueue

/var/spool/mail

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

[[email protected] scripts]#find /usr/ -not -user root -not -user bin -not -user student

/usr/local/apache2/logs/cgisock.3302

/usr/local/apache2/logs/cgisock.32138

/usr/local/apache2/logs/cgisock.3327

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

[[email protected] scripts]# find /etc -not \( -user root -o -user apache \) -mtime -7

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

[[email protected] scripts]# find / \( -nouser -o -nogroup \) -atime -1 -exec chown root:root {} \;

5,查找/etc目录下大于1M的文件,并将其文件名写入/tmp/etc/largefiles文件中;

[[email protected] scripts]#for i in `find /etc/ -size +1M -exec basename {} \;`;do echo $i >>/tmp/etc.largefiles ;done

[[email protected] ~]# find /etc/ -size +1M -exec basename {} >/tmp/find.out \;

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

[[email protected] scripts]# ll `find /etc/ -not -perm +222`

-r-------- 1 root root 1225 02-11 10:00 /etc/gshadow

-r-------- 1 root root 1213 02-11 00:19 /etc/gshadow-

-r--r--r-- 1 root root 41286 2006-11-28 /etc/mail/submit.cf

-r--r--r-- 1 root root 628 2010-07-21 /etc/selinux/config,v

-r-------- 1 root root 3159 02-11 10:00 /etc/shadow

-r-------- 1 root root 3129 02-11 00:29 /etc/shadow-

本文出自 “吖吖個呸” 博客,请务必保留此出处http://gm100861.blog.51cto.com/1930562/788831

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/Linux/

时间: 2016-07-30

linux中的文件查找命令的相关文章

5 个在 Linux 中管理文件类型和系统时间的有用命令

对于想学习 Linux 的初学者来说要适应使用命令行或者终端可能非常困难.由于终端比图形用户界面程序更能帮助用户控制 Linux 系统,我们必须习惯在终端中运行命令.因此为了有效记忆 Linux 不同的命令,你应该每天使用终端并明白怎样将命令和不同选项以及参数一同使用. 在 Linux 中管理文件类型和设置时间 请先查看我们 Linux 小技巧系列之前的文章: 5 个有趣的 Linux 命令行技巧 给新手的 10 个有用 Linux 命令行技巧 在这篇文章中,我们打算看看终端中 5 个和文件以及

Linux 文件查找命令which 详解

某个文件不知道放在哪里了,通常可以使用下面的一些命令来查找: which  查看可执行文件的位置 whereis 查看文件的位置 locate   配合数据库查看文件位置 find   实际搜寻硬盘查询文件名称 附:Linux文件查找命令find详解   which 命令详解 which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果.也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令. 1.命令格式: whic

Linux文件查找命令find,xargs详述【转】

转自:http://blog.csdn.net/cxylaf/article/details/4069595  转自http://www.linuxsir.org/main/?q=node/137 Linux文件查找命令find,xargs详述 总结:zhy2111314来自:LinuxSir.Org整理:北南南北摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解:本文是zhyfly兄贴在论坛中:我对本文进行了再次整理,为方便大家阅读: 目录

Linux中RPM文件操作的常用命令总结_Linux

简介 众所周知在Linux操作系统中,有一个系统软件包,它的功能类似于Windows里面的"添加/删除程序",但是功能又比"添加/删除程序"强很多,它就是Red Hat Package Manager(简称RPM).本文介绍的就是关于Linux中RPM文件操作的常用命令,下面话不多说,来一起看看吧. 一.RPM 安装操作 命令: rpm -i 需要安装的包文件名 举例如下: rpm -i example.rpm 安装 example.rpm 包: rpm -iv e

【日常小记】linux中强大且常用命令:find、grep

在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 find命令的一般形式 find命令的常用选项及实例 find与xargs grep命令 grep命令的一般形式 grep正则表达式元字符集(基本集) grep命令的常用选项及实例 1.find命令 find命令是一个无处不在命令,是linux中最有用的命令之一.find命令用于:在一个目录(及子目录)中搜索文件,你可以

Linux中强大且常用命令:find、grep

在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 find命令的一般形式 find命令的常用选项及实例 find与xargs grep命令 grep命令的一般形式 grep正则表达式元字符集(基本集) grep命令的常用选项及实例 1.find命令 find命令是一个无处不在命令,是linux中最有用的命令之一.find命令用于:在一个目录(及子目录)中搜索文件,你可以

linux 中强大且常用命令:find、grep

在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,它哥俩可以算是必会的linux命令,我几乎每天都要用到它们.   1.find命令 find命令是一个无处不在命令,是linux中最有用的命令之一.find命令用于:在一个目录(及子目录)中搜索文件,你可以指定一些匹配条件,如按文件名.文件类型.用户甚至是时间戳查找文件.下面就通过实例来体验下find命令的强大. 1.1.find命令的一般形式 man文档中给出的find命令的一般形式为: find [-H]

【日常小记】linux中强大且常用命令:find、grep【转】

转自:http://www.cnblogs.com/skynet/archive/2010/12/25/1916873.html 在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 find命令的一般形式 find命令的常用选项及实例 find与xargs grep命令 grep命令的一般形式 grep正则表达式元字符集(基本集) grep命令的常用选项及实例 1.fin

总结Linux中压缩文件和解压文件的用法

总结Linux中压缩文件和解压文件的用法,压缩文件和解压文件是在Linux中最常见的一种操作,熟悉和掌握这部分的技能也是必须的,一般我们常用的命令有:tar.unzip.bunzip2等等,如何正确的使用也是需要掌握的一个知识重点,下面我们分两个部分来对压缩文件和解压文件进行说明. a.解压小全 tar -I或者bunzip2命令都可以解压.bz2文件tar xvfj example.tar.bz2tar xvfz example.tar.gztar xvfz example.tgztar xv