1.按照文件名称精确查找 (全局查找)



1.按照名称精确查找 (全局查找)
[root@localhost /]# find / -name tnsnames.ora

#说明:全盘查询名称为"tnsnames.ora"的文件
#结果:/opt/app/oracle/product/10.2/network/admin/tnsnames.ora
      /opt/app/oracle/product/10.2/network/admin/samples/tnsnames.ora

#说明:“/”这个函数符号,如果输入“find /”就是表示要求Linux系统在整个ROOT目录下查找文件,也就是在整个硬盘上查找文件,
      “find /etc”就是只在etc目录下查找文件, 只在etc目录下查找文件,查找的速度就相应要快很多。
      “find .”就是在当前目录下查找文件。 

2.按照名称模糊查找 (全局查找 & 指定目录查找)
[root@localhost /]# find / -name '*.jar'
[root@localhost /]# find /etc -name '*query*'

3.按照名称精确查找 (当前路径查找)
[root@localhost /]# find . -name i-bpm.jar

4.按照名称模糊查找 (当前路径查找)
[root@localhost /]# find . -name '*.jar'



2. 根据文件特征查找

[root@localhost /]# find / -mmin -5 # 查找系统中最后5分钟里修改过的文件。
[root@localhost /]# find / -mtime -1 #查找系统中最后24小时里修改过的文件。
[root@localhost /]# find / -amin -10 # 查找系统中最后10分钟访问的文件。-amin n,查找系统中最后N分钟访问的
[root@localhost /]# find / -atime -2 # 查找系统中最后48小时访问的文件。-atime n,查找系统中最后n*24小时访问的
[root@localhost /]# find / -cmin -10 # 查找系统中最后10分钟被改变状态的文件。-cmin n,查找系统中最后N分钟被改变状态的
[root@localhost /]# find / -ctime -2 # 查找系统中最后48小时被改变状态的文件。-ctime n,查找系统中最后n*24小时被改变状态的文件

[root@localhost /]# find / -empty # 查找系统中为空的文件或者文件夹。

[root@localhost /]# find / -group cat # 查找系统中属于group cat的文件。
[root@localhost /]# find / -nouser #查找系统中属于作废用户的文件。
[root@localhost /]# find / -user oracle #查找系统中属于oracle这个用户的文件。

-false, 查找系统中总是错误的文件
-fstype type, 查找系统中存在于指定文件系统的文件,例如:ext2 .
-gid n, 查找系统中文件数字组 ID 为 n的文件

3. 根据文件内容查找

在当前目录搜索文件内容含有某字符串(大小写敏感)的文件:
[root@localhost /]# find . -type f | xargs grep 'your_string'

在当前目录搜索文件内容含有某字符串(大小写敏感)的特定文件:
[root@localhost /]# find . -type f -name '*.sh' | xargs grep 'string'

在当前目录搜索文件内容含有某字符串(忽略大小写)的特定文件:
[root@localhost /]# find . -type f -name '*.sh' | xargs grep -i 'your_string'

4. 无错误查找

在Linux系统中“find”命令是大多数系统用户都可以使用的命令,并不是ROOT系统管理员的专利。
但是普通用户使用“find”命令时也有可能遇到这样的问题,那就是Linux系统中系统管理员ROOT可以把某些文件目录设置成禁止访问模式。
这样普通用户就没有权限用“find”命令来查询这 些目录或者文件。当普通用户使用“find”命令来查询这些文件目录时,
往往会出现"Permissiondenied."(禁止访问)字样。系统将无法 查询到你想要的文件。

为了避免这样的错误,我们可是使用转移错误提示的方法尝试着查找文件,例如输入:
  find / -name access_log 2>/dev/null
这个方法是把查找错误提示转移到特定的目录中去。
    系统执行这个命令后,遇到错误的信息就直接输送到stderrstream2 中,access_log2就是表明系统将把错误信息输送到stderrstream2中,
/dev/null是一个特殊的文件,表明空的或者错误的信 息,这样查询到的错误信息将被转移了,不会再显示了。