linux下查找某个文件位置的方法

一、主要的查找命令:
1、**whereis 只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。
2、locate 命令和slocate命令都用来查找文件或目录。可以在使用locate之前,先使用updatedb命令,手动更新数据库。 locate /etc/sh(搜索/etc目录下所有sh开头的)。这个命令的查询速度很快。
3、find 这个是当下最常用的命令,主要格式和参数很多,举个栗子:
find / -name tnsnames.ora :代表在根目录“/”下,查找名字为tnsnames.ora的文件,返回该文件的绝对路径。
find /var/www -name wx :代表在”/var/www”目录下,查找文件名”wx”的文件位置。
二、通过部分文件名查找
例如我们知道某个文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件是可以实现 的,输入:
  find /etc -name ‘srm
  这个命令表明了Linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,比如absrmyz,tibc.srm等等符合条件的文件都能显示出来。如果你还知道这个文件是由srm 这3个字母打头的,那么我们还可以省略最前面的星号,命令如下:
  find/etc -name ‘srm*’
  这是只有像srmyz这样的文件才被查找出来,像absrmyz或者absrm这样的文件都不符合要求,不被显示,这样查找文件的效率和可靠性就大大增强了。
  三、根据条件来查找文件的位置
   例如我们知道一个Linux文件大小为1,500bytes,那么我们可是使用如下命令来查询find /-size
1500c,字符c表明这个要查找的文件的大小是以bytes为单位。如果我们连这个文件的具体大小都不知道,那么在Linux中还可以进行模糊查找方式 来解决。例如我们输入find /-size+10000000c这个命令,则标明我们指定系统在根目录中查找出大于10000000字节的文件并显示出来。命令中的“+”是表示要求系 统只列出大于指定大小的文件,而使用“-”则表示要求系统列出小于指定大小的文件。下面的列表就是在Linux使用不同“find”命令后系统所要作出的 查找动作,从中我们很容易看出在Linux中使用“find”命令的方式是很多的,“find”命令查找文件只要灵活应用,丝毫不比在WINDOWS中查 找能力差。

  find / -amin -10 # 查找在系统中最后10分钟访问的文件
  find / -atime -2 # 查找在系统中最后48小时访问的文件
  find / -empty # 查找在系统中为空的文件或者文件夹
  find / -group cat # 查找在系统中属于groupcat的文件
  find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
  find / -mtime -1 #查找在系统中最后24小时里修改过的文件
  find / -nouser #查找在系统中属于作废用户的文件
  find / -user fred #查找在系统中属于FRED这个用户的文件
解释:  下面的列表就是对find命令所可以指定文件的特征进行查找的部分条件。在这里并没有列举所有的查找条件,参考有关Linux有关书籍可以知道所有find命令的查找函数。

  -amin n
  查找系统中最后N分钟访问的文件
  -atime n
  查找系统中最后n*24小时访问的文件
  -cmin n
  查找系统中最后N分钟被改变状态的文件
  -ctime n
  查找系统中最后n*24小时被改变状态的文件
  -empty
  查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
  -false
  查找系统中总是错误的文件
  -fstype type
  查找系统中存在于指定文件系统的文件,例如:ext2 .
  -gid n
  查找系统中文件数字组 ID 为 n的文件
  -group gname
  查找系统中文件属于gnam文件组,并且指定组和ID的文件

你可能感兴趣的:(linux)