本文目录:

  1. which --搜索二进制可执行文件和别名(alias) 
  2. whereis 
  3. locate 
  4. find 
  1. 1、which搜索对象:二进制可执行文件和别名(alias) 
  2.    which搜索范围:which是根据『PATH』这个环境变量所规范的路径,去搜寻『运行档』的档名 
  3.  which搜索使用格式:which 后面接的是『完整档名』 

  4. 2、whereis搜索对象:【没有参数:任何格式文件 
  5.                                       -b:二进制可执行文件 
  6.                                       -B 只在设置的目录下查找二进制文件 
  7.                                      -m:文件如何使用的手册文件 
  8.                                      -M 只在设置的目录下查找说明文件  
  9.                                      -s 只查找原始代码文件  
  10.                                      -S 只在设置的目录下查找原始代码文件(源文件)                 
  11.                                      -u 查找不包含指定类型的文件 
  12.                                      -f 不显示文件名前的路径名称 】
  13.  
  14.  whereis 搜索范围:whereis 搜寻在数据库里面的数据,搜索范围比which要大。 
  15. whereis搜索使用格式:whereis后面接的是『完整档名』 

  16. 3、locate搜索使用格式:locate 后面接的是『文件的部分名称』 
  17.                                     
  18.   【-u 建立数据库,由根目录开始  
  19.                                        -U 建立数据库,可以指定开始的位置  
  20.                                       -e 将排除在寻找的范围之外  
  21.                                       -f 将特定的档案系统排除在外  
  22.                                       -q 安静模式,不会显示任何错误讯息  
  23.                                       -n 至多显示n个输出  
  24.                                        -r 使用正规运算式 做寻找的条件  
  25.                                        -o 指定数据库存的名称  
  26.                                      -d 指定数据库的路径  
  27.                                      -h 显示辅助讯息  
  28.                                       -v 显示更多的讯息  
  29.                                     -V 显示程序的版本讯息 】 

  30. locate 和whereis差不多,只不过locate可以进行模糊查询,搜寻到包含文件名的所有文件,所以当你只记得一部分文件名时,可以用这个来搜寻。
  31.  
    1. 使用 whereis 或者是底下要说的 locate 时,都会以『已创建的数据库 /var/lib/mlocate/』文件的内容为准, 因此,有的时后你还会发现使用这两个运行档时,会找到已经被杀掉的文件! 而且也找不到最新的刚刚创建的文件呢! 
    2.  
    3. 原因:因为他是经由数据库来搜寻的,而数据库的创建默认是在每天运行一次 (每个 distribution 都不同,CentOS 5.x 是每天升级数据库一次!),所以当你新创建起来的文件, 却还在数据库升级之前搜寻该文件,那么 locate 会告诉你『找不到!』呵呵!因为必须要升级数据库呀!升级 locate 数据库的方法非常简单,直接输入『 updatedb 』就可以了! updatedb 命令会去读取 /etc/updatedb.conf 这个配置档的配置,然后再去硬盘里面进行搜寻档名的动作, 最后就升级整个数据库文件罗!因为 updatedb 会去搜寻硬盘,所以当你运行 updatedb 时,可能会等待数分钟的时间喔! 
    4.         (1)updatedb:根据 /etc/updatedb.conf 的配置去搜寻系统硬盘内的档名,并升级 /var/lib/mlocate 内的数据库文件; 
    5.         (2)locate:依据 /var/lib/mlocate 内的数据库记载,找出使用者输入的关键字档名。 
  32.   4、find搜索范围:find遍历当前目录甚至于整个文件系统来查找某些文件或目录
  33. find搜索使用格式:find path -name filename(find / -name passwd,find /etc -name '*httpd*') 

 which --搜索二进制可执行文件和别名(alias)


 

 

  1. -a:可以列出所有PATH目录下存在的文件,而不仅仅是找到的第一个文件,默认只显示找到的第一个文件。 
  2. [root@rhel6 mlocate]# which find 
  3. /bin/find 
  4. [root@rhel6 mlocate]# which -a find 
  5. /bin/find 
  6. /usr/bin/find 
  7.  
  8. 注意:which只会搜寻可执行文件,普通文件即使在$PATH变量路径中,也是查找不到的。 

最后一个范例最有趣,怎么 cd 这个常用的命令竟然找不到啊!为什么呢?这是因为 cd 是『bash 内建的命令』啦! 但是 which 默认是找 PATH 内所规范的目录,所以当然一定找不到的啊!那怎办?没关系!我们可以透过 type 这个命令喔!

 whereis


 

 locate


 

  1. -u 建立数据库,由根目录开始    
  2. -U 建立数据库,可以指定开始的位置    
  3. -e 将排除在寻找的范围之外    
  4. -f 将特定的档案系统排除在外    
  5. -q 安静模式,不会显示任何错误讯息    
  6. -n 至多显示n个输出    
  7. -r 使用正规运算式 做寻找的条件    
  8. -o 指定数据库存的名称    
  9. -d 指定数据库的路径    
  10. -h 显示辅助讯息    
  11. -v 显示更多的讯息    
  12. -V 显示程序的版本讯息    

 find


 

  1. find命令可以使用混合查找的方法 
  2.  
  3. 例如我们想在/tmp目录中查找大于100000000字节并且在48小时内修改的某个文件,我们可以使用-and 来把两个查找选项链接起来组合成一个混合的查找方式: 
  4.             find /tmp -size +10000000c -and -mtime +2 

  1. -prune  不在当前指定的目录中查找  
  2. -depth  在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找  
  3. -mount  在查找文件时不跨越文件系统mount点  
  4. -follow  如果find命令遇到符号链接文件,就跟踪到链接所指向的文件  
  5. -cpio  对匹配的文件使用cpio命令,就将这些文件备份到磁盘设备中   -amin n 查找系统中最后N分钟访问的文件 
  6. -empty 查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹  
  7. -false 查找系统中总是错误的文件   
  8. -fstype type查找系统中存在于指定文件系统的文件,例如:ext2 .  

本文转自:http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager_5.php