文件搜索命令find
不管在Windows还是Linux中都尽量少用搜索,自己做好文件归纳放置,搜索会占用大量系统资源
-name:根据文件名来搜索
如果想要全盘搜索就把第一行命令写成根目录就行:
find / -name init
Windows只要文件中包含init这四个字都会被 搜索出来 ,而Linux是精准搜索,由上图可知,文件名必须是init,多一个字符都不行。
如果在Linux中想像Windows这样模糊搜索,只要含有init的文件都被搜索出来,在init前后加*,如下图
同理
find /etc -name init* //表示查找所有以init开头的文件,
find /etc -name init??? //表示init开头且后面有三个字符的文件
注意:在Linux中严格区分大小写,如果创建一个文件叫INITTAB,然后
find /etc -name init??? 是不会被搜到的,如下图
如果想要不区分大小写,可以用-iname,如下图
备注:不要再服务器使用高峰期的时候使用find,非常耗资源。
根据文件大小查找
Linux中用数据块作为存储文件最小单位,2数据块=1KB
上图就是查找大于100MB的文件
下图为根据所有者和所属组查找
——————————————————————————————
+表示超过多长时间
-表示多长时间之内
文件属性概念如下图
打开一个文档,在文档里增删改代表文件内容被改变
——————————————————————————
下例子:查找etc目录下init开头的文件(去除目录)
-OK与-exec的区别就是-ok会一个个问你yes or no
如下图
ls -i 查到每个文件i节点
.表示当前目录
find . 表示在当前目录下查找
根据i节点找出文件来删除最方便,不用在意那些格式,如下图
尤其一些很特殊的文件,名字奇形怪状,适合用i节点查找出来删除
PS:怎么知道一个文件有没有硬链接? 只要看这个文件i节点,然后在整个它所在的分区里面(硬链接无法跨分区)做一个搜索,找i节点是自己指定数字的文件,硬链接就找到了。硬链接i节点和本身文件一样
其他文件搜索命令
在Windows中的wox&everything利用NTFS特性的记录日志搜索速度非常快,几乎可以达到秒搜,但是Linux中find的搜索速度并不快,因为find是靠遍历搜索,如遍历整个分区/目录,故引入快速搜索locate,locate原理不是如此,它不是在硬盘上找,而是在资料库中找需要的文件
如果想要知道locate检索的文件资料库在哪儿,使用命令
locate locate
下面的白色横线哪一行就是资料库,定期更新
由上图可以知道,刚刚创建一个文件locate找不着,因为还没有更新资料库,这就是locate最大的问题
不过可以手动更新如下图
但是如果要找的文件存放在临时目录,更新不了。如下图
locate -i
就可以不区分大小写
——————————————————————————
———————————————————————————————
grep是在文件内容里做一个查找,找某个字符串或者关键词所在位置
如下图,用more会查文件,这个文件会比较长,有很多行,但自己只想看跟自己信息相关的行,用grep
grep可以用-i来不区分大小写,如下图
如上图,Linux的配置文件或者shell脚本里面,#都是表示注释的意思。
#开始的行都是注释行
如上图:-v是排除指定字符串,^#的意思是以#开头的行,此命令的意思是排除以#开头的行,只看有效行