Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > 入门 > Linux入门 > 正文

Linux入门 五 find命令

时间:2014-06-03 18:16 来源:未知 作者:www.51ou.com 阅读:

 Linux系统是一个小系统,也是一个大系统。

   说Linux是一个小系统,是因为linux简单、明快、高效,没有复杂的注册表,没有底层混乱的东西;说是一个大系统,是因为linux中有许许多多的文件,配置文件、头文件、临时文件等等,有时候你想精确的找到自己想要的文件并不是一件容易的事情。还好我们有查找文件的好工具,find。

   find是系统中给我们提供的命令,它用来根据特定的选项、查找路径、查找条件,查找文件,并可辅以处理动作指定对查找到的文件作出指定的操作。

   这里我们有必要说明下find大致的工作机制。为了说明find的工作机理,我们以whatis命令做以对比。whatis命令是查找命令在哪些man手册中有对应片段的命令,它可以高速查找速度非常快,这是因为它在后台维护了一个数据库(简单可以这么理解,这也是为什么我们刚装完系统后whatis命令使用会报错的原因,那个时候数据库还没有生成呢,需要手动通过makewhatis来创建)。因为数据并不是时刻在更新,因此,whatis查找并不十分精确,但速度快;find则不然,它实时对系统进行搜索查询,精度高,但是速度相对较慢。所以,在使用find命令时,要尽量避免对根目录等文件较多的目录全盘查找,应缩小查找范围。

   本文内容主要有:

   命令格式及简单说明

   选项及示例

   组合条件搜索

   动作及示例

   其他话题

一、命令格式及简单说明

   find [option][path][expression][action]

   option主要是find命令使用到的选项,-name,-iname,-user等

   path是需要查找文件所在路径,默认不写情况下为当前工作目录

   expression查找条件,默认为全部文件

   action对查找到的文件执行的动作,默认为打印出查找到的文件列表

二、选项及示例

   为了演示示例,在/tmp目录下创建文件,列表如下。如无特别说明,路径使用默认当前目录,省略。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@station75 tmp]# ll
total 72
-rwsr-xr-x 1 root   root   48568 Feb 26 16:53 cat
-rw-rw-r-- 1 hadoop hadoop    21 Feb 26 17:02 find1.txt
-rw-rw-r-- 1 hadoop hadoop     0 Feb 26 11:39 Find1.txt
-rw-rw-r-- 1 test   test       0 Feb 26 11:38 find.txt
-rw-rw-r-- 1 test   test       0 Feb 26 11:38 Find.txt
-rw------- 1 root   root     921 Feb 26 16:50 fstab
-rw-r--r-- 1 root   root    1615 Feb 26 11:34 passwd
-rw-r--r-- 1 root   root       0 Feb 26 11:34 Passwd
-rw-r--r-- 1 root   root      86 Feb 26 22:00 sum.sh
drwxrwxr-x 2 test   test    4096 Feb 26 17:16 test
-rw-r--r-- 1 root   root       0 Feb 26 11:36 test.txt
-rw-r--r-- 1 root   root       0 Feb 26 11:36 Text.txt
[root@station75 tmp]#

   1,基本选项

 

-name -name "文件名称" 根据文件名称精确查找,区分大小写
-iname 根据名称查找,不区分大小写
-user 根据文件属主查找
-group 根据文件属组查找
-uid 根据文件属主id(uid)查找。在用户已删除不知道用户名,
知道uid的情况下使用较常见。即用户不在/etc/passwd文件中
-gid 根据文件属组id(gid)查找。用户组已删除的情况下使用,
即组不在/etc/group文件中
-nouser 没有有效属主的文件,即用户不在/etc/passwd文件中
-nogroup 没有有效属组的文件,即组不在/etc/group文件中

   1.1 -name 根据文件名查找。找到名称为test的文件

 

1
2
3
4
#精确匹配到了test,首字母大写的文件、有后缀的test.txt均没有显示
[root@station75 tmp]# find -name "test"
./test
[root@station75 tmp]#

   1.2 -iname 根据文件名称查找,不区分大小写。查找名字为find。    

 

1
2
3
4
[root@station75 tmp]# find -iname "find1.txt"
./Find1.txt
./find1.txt
[root@station75 tmp]#

   1.3 -user 根据用户属主查找。找到属主是hadoop的文件

 

1
2
3
4
[root@station75 tmp]# find -user hadoop
./Find1.txt
./find1.txt
[root@station75 tmp]#

   1.4 -group 根据用户属组查找。找到属组是test的文件

 

1
2
3
4
5
[root@station75 tmp]# find -group test
./find.txt
./Find.txt
./test
[root@station75 tmp]#

   1.5 -uid 根据uid查找。为了演示效果,这里我删除用户test

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#这里删除用户。可以看到/tmp下,原来属主和属组是test的文件的属主和属组
#都显示为id,而不是名称
[root@station75 tmp]# userdel test
[root@station75 tmp]# ll
total 72
-rwsr-xr-x 1 root   root   48568 Feb 26 16:53 cat
-rw-rw-r-- 1 hadoop hadoop    21 Feb 26 17:02 find1.txt
-rw-rw-r-- 1 hadoop hadoop     0 Feb 26 11:39 Find1.txt
-rw-rw-r-- 1    500    500     0 Feb 26 11:38 find.txt
-rw-rw-r-- 1    500    500     0 Feb 26 11:38 Find.txt
-rw------- 1 root   root     921 Feb 26 16:50 fstab
-rw-r--r-- 1 root   root    1615 Feb 26 11:34 passwd
-rw-r--r-- 1 root   root       0 Feb 26 11:34 Passwd
-rw-r--r-- 1 root   root      86 Feb 26 22:00 sum.sh
drwxrwxr-x 2    500    500  4096 Feb 26 17:16 test
-rw-r--r-- 1 root   root       0 Feb 26 11:36 test.txt
-rw-r--r-- 1 root   root       0 Feb 26 11:36 Text.txt
-rw------- 1 root   root     261 Feb 24 21:02 yum_
save_tx-2014-02-24-21-02aXFt0p.yumtx
[root@station75 tmp]#

感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《Linux入门 五 find命令》技术文章,《Linux入门 五 find命令》详细使用和说明,有时《Linux入门 五 find命令》可能不完善、敬请谅解!如果《Linux入门 五 find命令》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(0)
0%
踩一下
(0)
0%
上一篇:Linux入门 四 grep
下一篇:Linux入门 六 DNS
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片