which 查询指令的文件名:
which [-a] command
例:
$ which ls # 查询 ls 命令的完整文件
$ which -a ls # 查询所有PATH目录中能找到的指令
whereis 在系统特定目录中寻找文件文件名
whereis [-lbmsu] 文件或文档名
-l 列出whereis会去查询的几个主要目录
-b 只找binary格式的文件
-m 只找说明文件mamul下的文件
-s 只找sourcce来源文件
-u 搜寻不在上述三个项目中的其他文件
例:
$ whereis ls # 查找ls 的文件名
$ whereis -m passwd # 只查询 passwd 的说明文档
locate 文件数据库搜索(快,只能搜索文件名,包含匹配,某些目录会忽略)
locate [-ir] filename
-i 忽略大小写
-c 输出文档数量
-l 仅输出前几行
例:
$ locate -i README # 忽略大小写搜寻readme文件
$ locat -l5 readme # 精确搜寻readme 文件 ,只显示前5行
$ updatedb #更新 /var/lib/mlocate 数据库
$ yum install mlocate # 安装locate 命名
find 全硬盘搜索(慢,功能全,需完全匹配)
find [PATH] [option] [action]
-mtime n n天之前(1天内)被改动过的文档
-mtime +n 列出n天天(不含n天)改动过的文档
-mtime -n n天内(含n天)被改动过的文档
-newer file 列出比 file还要新的文件档名
例:
$ find / -mtime 0 # 24内小时改动过的文件
$ find /etc -newer /etc/passwd # 列出etc下 比passwd文件新的文件;
-user user1 #user1创建的文件
-group group1 #group1 组下创建的文件
-nouser #文件拥有者不存在/etc/passwd的文件;
-nogroup #文件所属群组不存在/etc/group的文件
例:
$ find /home -user root # home文件夹下 root账号创建的文件;
-name filename
-size [+-]SIZE -size +50k 大于50k的文件
-type TYPE 文件类型 d-目录 f-普通文件 l-链接档
例:
$ find / -name *passwd* #搜索跟目录下文件名包含passwd的文件
$ find -size +2M #搜索文件大于2M的文件名
-a and 逻辑与操作
-o or 逻辑或操作
-exec 对搜索结果执行操作
例子:
$ find /etc/ -size +20k -a -size -50k # 查询etc 目录下 20k 到 50k的文件
$ find /etc/ -size +20k -a -size -50k -exec ls -lh {} \; # 查询etc符合条件的文件并对结果执行ls -lh 命令 (注意{} \; 是标准写法,且 {}与\ 中间有个空格)