linux 文件 位置 查询

在linux中文件太多,我们通常想要知道文件放在哪里,才能够针对进行一些修改或维护等操作。
下面介绍几种文件查询的方法

脚本文件名查询

which [-a] command

参数:
-a : 将所有由 PATH 目录中可以找到的命令均列出,而不只第一个被找到的命令名称
command : 执行者必须有该命令的访问权限

范例一:
which ifconfig

也可以通过type命令:
type cd

文件名查找

whereis、find、locate
因为find比较慢,所以可以尝试用where或者locate先查询,如果查找没有,可以再考虑用find命令

whereis

whereis [-bmsu] 文件或者目录
参数:
-b: 只查找二进制格式文件
-m: 只查找在说明文件 manual 路径下的文件
-s: 只查找 source 源文件
-u: 查找不在上述三个选项当中的其他特殊文件

eg:
  whereis ifconfig

locate

locate [-ir] keyword
参数:
-i: 忽略大小写的差异
-r: 后面可接正则表达式的显示方式

eg:
locate passwd

注意:
    由于locate命令是查询的数据库,而数据库并不是实时更新,centos是每天更新一次,所以有可能我们新创建的文件,立马用locate查询会查询不到。这时候我们就需执行命令: updatedb ,手动更新数据库,会读取/etc/updatedb.conf配置的设置.而updatedb会查找硬盘,所以当执行updatedb命令时,可能会等待几分钟时间

find

find [PATH] [option] [action]
参数:
1. 与时间有关的参数:共有 -atime、-ctime、-mtime, 下面以 -mtime说明。
-mtime  n : n为数字,意义为在n天之前的'一天之内'被更改为的文件。
-mtime +n : 列出在n天之前(不含 n 天本身) 被更改过的文件名。
-mtime -n : 列出在n天之内(含n天本身)被更改过的文件名。 
-newer file : file 为一个存在的文件,列出比file还要新的文件名.

eg:
将过去系统上面24小时内有改动的文件列出: 
find / -mtime 0   ##0代表目前的时间,所以从现在开始到24小时前
find / -mtime 3   ##查找3天前的24小时内修改过的文件
find /etc -newer /etc/passwd   ##寻找 /etc 下面的文件,如果文件日期比 /etc/passwd 新旧列出, -newer 用在分辨两个文件之间的新旧关系

5325页