文件查找
目录
- which/type查找执行档
- whereis查找特定目录的文件
- locate查找数据库中的文件
- find查找硬盘文件
1、which/type查找执行档
which指令是根据『PATH』这个环境变量所规范的路径,去搜寻『执行档』的档名
2、whereis查找特定目录的文件
whereis只会查找特定目录中的文件,特定目录可以用whereis -l查看。
3、locate查找数据库中的文件
locate从已建立的数据库 /var/lib/mlocate/文件中查找文件,但数据库并不是实时更新,若有新文件刚刚被创建,因此需要sudo updatedb更新数据库。
4、find查找硬盘文件
find usage:find [PATH] [option] [action],下面为option详情。
(1)、与时间有关的选项
find /var -mtime -4
find /var -mtime +4
find /var -mtime 4
find /etc -newer /etc/passwd
(2)、与使用者或组别相关的选项
find /home -user dmtsai
find / -nouser
(3)、与文件名及权限相关的选项
find /home -name test
find /home -name "*passwd*"
find / -size +100M
find /var -type s
find /usr/bin /usr/sbin -perm /6000
find /etc -size +50k -a -size -60k -exec ls -l {} \; -a为and的意思
find /etc -size +50k -a ! -user root -exec ls -ld {} \; ! 为非的意思
find /etc -size +1500k -o -size 0 -o为或的意思
find /usr/bin /usr/sbin -perm /7000 -exec ls -l {} \;
find 的特殊功能就是能够进行额外的动作(action)。我们将最后一个例子以图解来说明如下:
- {}代表的是『由 find 找到的内容』,如上图所示,find 的结果会被放置到 {} 位置中;
- -exec 一直到 \; 是关键词,代表 find 额外动作的开始 (-exec) 到结束 (\;) ,在这中间的就是 find 指令内的额外动作。 在本例中就是『 ls -l {} 』啰!
- 『 ; 』在 bash 环境下是有特殊意义的,因此利用反斜杠来跳脱。