find命令:文件搜索
语法:find [搜索范围] [匹配条件]
-name 根据文件名搜索
例子:find /etc -name init 在目录/etc下搜索文件名为init的文件
find /etc -name *init* 通配符搜索,文件中包含init
find /etc -name init* 以init开头的文件
find /etc -name init? 以init开头,且文件名为五个字符的文件
补充:*匹配任意字符,?匹配单个字符;
-iname 根据文件名查找,不区分大小写
-size 根据文件大小查找
例子:find / -size +204800 在根目录下查找大于100MB的文件; +n 大于, -n 小于, n 等于;
补充:在linux下,一数据块大小是512字节,0.5k,所以100M = 102400KB = 204800数据块,数据库是linux中最小存储单位;
-user 根据所有者查找文件
例子: find /home -user shenchao 在根目录下查找所有者为 shenchao 的文件
-group 根据所属组查找
例子:find /home -group shenchao 在根目录下查找所属组为shenchao的文件
-amin 访问时间 access
-cmin 文件属性 change
-mmin 文件内容 modify
例子:find /etc -cmin -5 在/etc下查找5分钟内被修改过属性的文件和目录
例子:find /etc -size +163840 -a -size -204800 在/etc下查找大于80MB小于100MB的文件;
-a 两个条件同时满足 and
-o 两个条件满足任意一个即可 or
例子:find /etc -name inittab -exec ls -l {} \ 在/etc下查找inittab文件并显示其详细信息
-exec/-ok 命令 {} \; 对搜索结果执行操作; {}表示前面find的结果,可能有多个; \转义符;
-type 根据文件类型查找
f文件 d目录 l软连接文件
-inum 根据i节点查找, 什么情况下使用,当对文件名无法把握,比如出现无法拼写的字符,使用ls -d 查找i节点,然后根据i节点删除该文件。
例子:find -inum 31531 -exec rm {} \;
locate命令:文件搜索命令,在资料库中查找文件,locate会自己建立资料库
语法:locate 文件名
执行权限:所有用户
例如:locate inittab 在资料库中查找名为 inittab的文件;
新建的文件不在资料库中,所以使用locate命令无法找到新建的文件,可以使用命令updatedb更新资料库,这个时候就可以查找新建的文件了;
但是,文件夹/tmp不在文件资料库收录的范围,因此在tmp新建的文件,即使使用updatedb也无法将新建的文件收录到资料库中;因此,使用locate无法找到;
-i 不区分大小写,对 文件进行查找
例子:locate -i teacher.cang 不区分大小写对teacher.cang文件进行搜索
which命令:搜索命令所在目录及别名信息
语法:which 命令
例子:which ls
rm -i 中-i询问命令;
whereis命令:搜索命令所在目录及帮助文档路径
语法:whereis [命令名称]
例子:whereis ls
grep命令:在文件中搜索字符串匹配的行并输出
语法:grep -iv [指定字串] [文件]
-i 不区分大小写
-v 排除指定字串
例子:grep mysql /root/install.log 在文件install.log中查找mysql字符串对应的行,将该行列出来;
grep -v ^# /etc/inittab 查找inittab文件中,排除以#开头的行; ^表示以什么开头;