文件名查找指令find

原创 2016年06月02日 10:45:31

一,文件查找命令    

    在linux下有相当优异的查找命令。那怎么查找一个文件的存放路径呢?通常我们会用到下面这三个命令:

    which  查看可执行文件的位置。

    whereis  查看文件的位置。

    locate  配合数据库查看文件位置。

    find  实际搜寻硬盘查询文件名称。

    通常我们先使用前面三个命令来进行查找,如果真的找不到。再使用find命令来查找。因为whereis和locata是利用数据库来查找数据的,而且并没有实际查找硬盘,所以速度相当的快。

二,find命令

    find是一个很强大的命令,它是直接查找硬盘的。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

1,命令格式:

wKioL1c9hieSH39eAAAQ61zQY58647.png

2,命令功能:

    用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

3,命令参数:

PATH find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 

option 命令参数的选择。

action包含这几个选项:

-print find命令将匹配的文件输出到标准输出。-exec find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{  }和\;之间的空格。 

-ok 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

4,命令选项:

(1)与时间有关的参数:-atime -ctime -mtime 下面以-mtime为例进行说明:

-mtime n :n为数字,意义为n天之前的“一天以内”被更改过的文件;

-mtime +n :列出n天之前(不含n天本身)被更改过的文件名; 

-mtime -n :列出在n天之内(含n天本身)被更改过的文件名;

-newer file :file为一个存在的文件,列出比file还要新的文件名。

-newer file1 ! file2  查找更改时间比文件file1新但比文件file2旧的文件。

wKiom1c9q73RHorhAAB9adx97BU125.png(2)与用户和用户组有关的参数

-uid n :n为数字,这个数字是用户的账号ID,即UID,这个UID是记录在/etc/passwd里面与账号名称对应的数字。

-gid n :n为数字,这个数字是用户的账号ID,即GID,这个UID是记录在/etc/group中。

-user name :name为用户账号名称。

-group name :name为用户组名。

-nouser :寻找文件的所有者不存在于/etc/passwd的人。

-nogroup :寻找文件的所有用户组不存在于/etc/passwd中的文件。

当你自行安装软件时,很可能该软件的属性当中并没有文件所有者,这个时候可以使用-nouser与

-nogroup进行查找。

wKiom1c9rT-DDqRiAABcfzLe3Ew086.png

wKiom1c9rfSi4UOyAAAXBnMa78U361.png

wKiom1c9rkmgTvA4AAAYXXCJrE0378.png

(3)与文件权限与名称有关系的参数

-name filename :查找文件名为filename的文件。

-user :按照文件属主来查找文件。

-group 按照文件所属的组来查找文件。

-size n [c] :查找文件长度为n块的文件,带有c时表示文件长度以字节计。

-size [+-]SIZE :查找比SIZE还要大(+)或者小(-)的文件。这个SIZE的规格有:

c 代表byte

k 代表1024bytes,要找比50KB大的文件就是“-size +50k”。

-type :查找某一类型的文件,诸如:

b  块设备文件。

d  目录。

c  字符设备文件。

p  管道文件。

l  符号链接文件。

f  普通文件。

p  管道文件。

s  套接字。

-prune :使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么

-prune将被find命令忽略。

-perm :按照文件权限来查找文件。

-perm mode :查找文件权限“刚好等于”mode的文件,这个mode文件为类似chmod的属性值,举例来说,-rwsr-xr-x的属性值为4755。

-perm -mode :查找文件权限“必须要全部包含mode的权限”的文件,举例来说,我们要查找-rwxr--r--即0744的文件,当一个文件-rwxr-xr-x的权限为4755时,也会被列出来,因为-rwsr-xr-x的属性已经包括了-rwxr--r--的属性了。

-perm +mode :查找文件权限“包含mode的权限”的文件,举例来说,我们要查找-rwxr--r--即0744的文件,当一个文件-rwxr-xr-x的权限为4755时,也会被列出来,因为-rwxr-xr-x的属性已经包括了-rwxr--r--的属性了。

-depth :在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

-fstype :查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。

-mount :在查找文件时不跨越文件系统mount点。

-follow :如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。

-cpio :对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

wKiom1c9rwrSbh7oAABQ50Pr71Q431.png

wKiom1c9sgTC359TAACA-UTpyoY090.png

wKiom1c9s9vQTJUeAABJl8Rm3Pw945.png

wKioL1c9tbDAi1kdAABbRmQa878681.pngwKiom1c9tzvBnr_6AAARBmeRFkA909.png

(4)其他可进行的操作

-print :将结果打印到屏幕上,这个是默认操作。

在/logs目录中查找更改时间在5日以前的文件并删除它们:

$ find logs -type f -mtime +5 -exec -ok rm {} \

wKiom1c9uZjSt1iNAAAlcAA8om0578.png

三,find的特殊功能

find的特殊功能就是能够进行额外的动作(action)。

wKioL1c9v7iTc3uVAAA7ZgrNX1w161.png

    find不但可以指定查找的目录(连同子目录),并且可以利用额外的参数来找到最正确的文件名。


    如果你要找的文件具有特殊属性,例如SUID,文件所有者,文件大小等,利用locata是没有办法达到的,但是find就可以哦。find还可以利用通配符来寻找文件名。例如:想找出/etch下面文件名包含httpd的文件,可以用下面的命令:

wKiom1c9wK7QmsgpAABWPpF4z6E178.png

find博大精深,其他的后面再了解,暂时就说这么多啦啦啦。










本文出自 “Stand out or Get out” 博客,请务必保留此出处http://jiazhenzhen.blog.51cto.com/10781724/1775182

linux-find【递归搜索文件名】

1 命令格式: $ find 最常见示例:查找文件名(忽略大小写) $find . -iname sqlquery.java 1.1 :  所要搜索的目录及其所有子目录。...
  • yanxuex
  • yanxuex
  • 2013年12月30日 15:08
  • 3650

【Linux Shell脚本攻略之一】find命令:文件查找和文件列表

find是Unix/Linux命令行工具中最棒的工具之一。该命令对于编写shell脚本所起到的功能不可小视,但是多数人却午饭最大程度发挥它的功效,下面介绍find一些常见的用法。...
  • lavorange
  • lavorange
  • 2016年02月03日 16:47
  • 8432

shell 脚本攻略-find 文件查找总结

对 find 命令的总结先看看 cat 命令ld@ubuntu:/mnt/hgfs/haShare/test$ ls -la total 6 drwxrwxrwx 1 root root 0 J...
  • stuShan
  • stuShan
  • 2016年07月19日 18:50
  • 2122

find 查找文件或文件夹命令find

·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数; pathnam...
  • will5451
  • will5451
  • 2016年09月04日 22:40
  • 350

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

linux下的find文件查找命令与grep文件内容查找命令   在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。   区别:(1)find命令...
  • sinat_34439107
  • sinat_34439107
  • 2017年12月11日 17:19
  • 35

find & grep 结合查找 某字符串 所在文件

1、 在当前目录下所有文件中查找内容包含 字符串 bruce_xxx 的文件: # find ./ -name "*" -exec grep "bruce_xxx" {} \; ---------...
  • devwang_com
  • devwang_com
  • 2016年09月06日 20:19
  • 985

Linux下的指令: 查找指令:find

Linux下find命令在目录结构中搜索文件,并执行指定的操作。 1. Linux下find命令格式: $ find pathname -options [-print -exec -ok …]...
  • qq_35118894
  • qq_35118894
  • 2017年03月27日 11:17
  • 384

Linux中的查找指令:find

思维导图为了使后面的讲解更加清晰,我们先附上find命令的思维导图 命令的使用下面我们对find命令的参数和选项进行测试,熟悉该指令的应用。option一.与文件时间有关的参数的指令前面我们提到了L...
  • bit_clearoff
  • bit_clearoff
  • 2016年12月31日 13:42
  • 558

find 指令详解

概述 有时可能需要在系统中查找具有某一特征的文件(例如文件权限、文件属主、文件长度、文件类型等等)。这样做可能有很多原因。可能出于安全性的考虑,或是一般性的系统管理任务,或许只是为了找出一个不知...
  • holandstone
  • holandstone
  • 2014年09月25日 11:46
  • 1024

find,awk,grep等文本操作命令的使用

查找目录下的所有文件中是否含有某个字符串 linux  (2012-05-25 19:33:23) 转载▼ 标签:  杂谈   查找...
  • fd8559350
  • fd8559350
  • 2016年09月04日 21:35
  • 1003
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件名查找指令find
举报原因:
原因补充:

(最多只允许输入30个字)