文件搜索命令
- 文件搜索命令find
搜索会占用大量资源
Linux中少用搜索,尽量整理好文件目录及文件
Windows中搜索可以使用软件:everything(基于NTFS分区)
Linux与Windows不同的时,windows是模糊查询,linux是精准查询
语法:find [搜索范围] [匹配条件]
搜索范围只有 / 表示在根目录下进行搜索,即全盘搜索
匹配条件:文件名称,文件大小,时间属性,文件类型,i节点
(1)文件名称
find /etc -name init //在目录/etc中查找文件init,-iname不区分大小写
(2)文件大小
find / -size +204800 //在根目录下查找大于100MB的文件(+大于;-小于;不写则是等于)
在Linux中一个数据块是512字节0.5k,查找的文件需换算成数据块
(3)文件所属者
find /home -user cly //在根目录下查找所有者为cly的文件, -group 根据所属组查找
(4)文件时间属性
find /etc -cmin -5 //在/etc下查找5分钟内被修改过的属性的文件和目录
-amin 访问时间 access
-cmin 文件属性change
-mmin 文件内容modify
(5)文件类型
-type根据文件类型查找:f 文件 d目录 l 软链接文件
例如:find /etc -type f //查找etc目录下的文件
(6)根据i节点查找 -inum
ls -i //看到每个文件的i节点
例如:find . -inum 31531 -exec rm {} \ ;
若希望模糊查询,使用通配符 * 即可,?代表单个字符
例如:find /etc -name * init *
连接选项:-a 两个条件同时被满足;-o 两个条件满足任意一个即可;-exec/ok命令 {} ; 对结果执行操作
例如:find /etc -size +163840 -a -size -204800 //在etc下查找大于80MB小于100MB的文件
又如:find /etc -name inittab -exec ls -l {} \ ; //在etc下查找inittab文件并显示其详细信息
find /home -user cly -ok rm {} \ ; //-ok用来询问确认
- 在文件资料库中查找文件locate
语法:locate 文件名
例如:locate inittab //区分大小写 ;locate -i inittab //不区分大小写
locate不是遍历搜索,是建立了文件资料库会定期更新,在资料库中搜索,速度快
更新文件资料库:updatedb
存放临时文件的目录不在资料库收录范围之中
- 搜索命令所在目录及别名信息which
语法:which 命令
例如:which ls
- 搜索命令所在目录及帮助文档路径whereis
语法:whereis 命令名称
例如:whereis ls
- 在文件中搜寻字串匹配的行并输出grep
-i 不区分大小写;-v 排除指定字串
语法:grep -iv [指定字串] [文件]
例如:grep mysql /root/install.log
grep -v ^# /etc/inittab 和 grep -v # /etc/inittab的区别是:
前者排除的是#在行首的行而后者是每一行中只要有#不论位置都被排除
雪碧可乐_2020/6/25_11:13