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是一个特殊的文件,表明空的或者错误的信 息,这样查询到的错误信息将被转移了,不会再显示了。