1、which(查看命令文件位置和命令可能出现的别名)which 比where用得多
--color为长选项 -a -i-h为短选项 ,可以=混合使用
2、whereis(查找命令及帮助文档所在位置)(文件看到,内容看不了)
3、locate(按照文件名查找,按照数据库查找)模糊查询
命令执行前要先更新数据库:执行命令updatedb
updatedb 强制更新/创建数据库 优点速度快,缺点数据库文件可能没更新
locate命令的使用实例:
# locate /etc/sh
搜索etc目录下所有以sh开头的文件。
在使用locate命令时,要使用绝对路径查询。
4、命令名称:find(搜索系统中符合条件的文件)
格式:find 文件目录 选项 具体条件
4.1 -name 根据文件名查找
通配符:* 任意多个字符,要用 " * "双引号
? 任意一个字符
[] 指范围值,外侧加引号
4.2 -size 根据大小查找
find ./ -size -10k 查找小于10k的文件或目录find ./ -size -10M 查找小于10M的文件或目录
find ./ -size +10G 查找大于10G的文件或目录
4.3 -user 根据所有者查找
find / -user root 查找根下所有root用户的文件
4.4 -group 根据所属组查找
find / -group root 查找根下所有root组的文件
4.5 -perm 根据文件权限查找
find /boot -perm 644 (找权限过大的文件)
4.6-按时间查找
按天 ctime atime mtime
按分钟 cmin amin mmin
c change 表示属性被修改过:所有者、所属组、权限
a access 被访问过(被查看过)
m modify 表示内容被修改过
find /etc -mmin -120 查找120分钟内内容被修改过的
find /etc -ctime +7 查找七天之前属性被修改过的
4.7 -type 根据文件类型查找
-type f 二进制文件(普通文件)
-type l 软连接文件
-type d 目录
4.8 -inum 根据文件inode查询
find ./ -inum 231906 -exec rm {} \;
有一些文件的硬链接数量有很多,有相同的i节点,查找其中的一个文件的i节点号,一次性删除。
4.9 -命令执行连接符(对查找到的文件,进一步处理)
find ... -exec 命令 {} 空格 \; 先查询,后做其他的
{}表示find查询的结果集
\是转义符,不使用命令别名,直接执行命令。
;分号是表示语句结束 \;为一体
转义符:在Linux中有个别名机制,如rm删除文件,执行的却是rm -i(用which rm 可以查看命令
别名)使用rm删除文件前会提示确认信息,就因为rm -i 这个参数。如果想使用命令原意,可以在加\转义。如:\rm tese.txt 不会提示,直接删除。
4.10 xargs命令:把前一个命令输出的结果当成多个参数。
例:find / -name "aaa*" | xargs rm -rf
find / -name "aaa*" | xargs -i cp { } /temp/
5.grep “字符串” 文件名(在文件内查找符合条件的字符串行)
命令所在路径:/bin/grep 看文件内容
-v 反向选择 排除带有的
-i 忽略大小写
6.管道符 可以不用先查询
命令1 | 命令2 将命令1 的标准输出作为命令2的标准输入
ps aux | grepp " 关键字" 进程筛选 ,查找
find 命令的 "-exec"选项与管道符在处理方式、参数传递机制以及输出结果展示区别
①处理方式
-exec:对每个查找到的文件或目录逐个执行指定命令。
管道符:将一个命令的完整输出作为下一个命令的输入进行一次性处理。
②参数传递机制
-exec:通过{}占位符和;结束符逐一传递每个文件作为参数给命令。
管道符:通过标准输入(stdin)将前一个命令的所有输出传递给后一个命令的标准输入(stdout)。
③输出结果展示
-exec:通常不会直接显示在终端上,除非是执行的命令本身具有输出功能。
管道符:后一个命令的输出会直接显示在终端上,因为其处理的是前一个命令的全部输出
-exec主要是为了执行一个操作并立即得到结果,而 | 则用于数据传递,让两个命令之间建立逻辑关联。