文件搜索命令find
find搜索指令是最大的搜索指令,常常会占用大量的资源。
find指令也可以进行模糊搜索,如:find /etc -name init* (只有含有init的文件都会被找到。)
也可以:find /etc -name init(init开头的文件才会被找到。)
也可以:find /etc -name init???(init开头,后面接三个字符的文件才会被找到。)
其中*表示任意字符,?表示单个字符,可以放前面也可以放后面,根据我们的需要。
fine / -size +204800(其中204800的单位是数据块,一个数据块默认是512个字节,也就是0.5k,这里查找的是大于100M的文件,+号是大于,-是小于,什么都不加是等于不过一般不用)。
-cmin和-mmin是有很大区别的。文件的属性指的是ls -l查看文件时出现的那些叫做属性。而文件的内容指的是文件里面写的内容。
-a也就是and(与),-o就是or(或)。 {} ;是一种格式。
一般只有在查看文件的硬链接和文件名很奇怪的时候才会使用-inum来查找文件。硬链接的文件与原文件是i节点是相同的。
其他搜索命令
locate查找也就是快速查找,虽然他查找的速度很快,但他是在资料库里查找文件,而资料库并不是实时更新的,他是定期或者手动更新的,缺少一定的实时性。而且对于一些存放临时文件的目录是无法更新到资料库的,所以无法找到里面的文件。
更新资料库的命令:updatedb
文件资料库:mlocate.db文件。
locate -i查找可以不区分大小写。
找到命令所在的目录以及别名。其实所有的命令都是不包含询问功能的,当我们写rm /tmp/temp的时候他会问我们是否真的删除,这是因为命令的别名起的作用。如果我们写/bin/rm /tmp/temp,这样写命令的话,他是不会询问我们是否删除的。
whereis与which各有优点:whereis还能够找到命令的帮助文档的路径;而which能够命令的别名。
在Linux的文件中#表示的是注释。
如果我们想要删掉注释可以这样写:grep -v # /etc/inittab
但有些注释是写在中间的,它的前面还有一些不是注释的语句,如果我们执行上一句,则这一整行是不会输出的,所以可以改成这样:grep -v ^# /etc/inittab
这表示只有以#开头的语句才不会输出。