Linux中有许多查找命令,优先使用whereis和locate命令,因为他们直接用数据库搜索文件,并没有实际搜索硬盘,如果真的找不到,采用find命令。
1.which查找“执行文件”
命令格式:which [-a] command
参数:
-a:列出所有找到的命令全称
例子:
2.whereis查找“特定文件”
命令格式:whereis [-bmsu] 文件或路径名
参数:
-b:只找二进制文件;
-m:只在帮助文件manual下查找文件;
-s:只找源文件;
-u:没有帮助文件的文件。
例子:
3.locate命令
命令格式: locate filename
例子:
4.find命令
命令格式:find [path] [option] [action]
参数(仅仅列出与时间相关的):
-atime n: n为数字,表示在n天之前的“一天之内”存取(access)过的文件;
-ctime n: n为数字,表示在n天之前的“一天之内”修改(change)过状态的文件;
-mtime n: n为数字,表示在n天之前的“一天之内”修改(modify)过的文件;
-newer filename: 比filename还要新的文件。
例子1:查找4天前修改过的文件
例子2:在/etc目录下查找比/etc/passwd新的文件
需要注意的是:由于whereis和locate是查找数据库,并且数据库的更新也需要时间(默认每天更新一次),所以可能查找的结果是错误的。