ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

文件搜索、查找与对比

2020-03-20 23:01:51  阅读:343  来源: 互联网

标签:locate 文件 命令 find etc 查找 搜索 对比


文件搜索、查找与对比

文件搜索命令find

find文件搜索命令。基本模式是find [搜索范围] [筛选条件],如find /etc -name *init*代表查找etc目录下文件名含init的文件,?代表单个字符,*代表任意字符,如果匹配条件不带通配符,那么搜索结果中文件名就只能是init。-iname代表不区分大小写;

-size可以在筛选条件里加入大小,find /etc -size +204800表示在etc目录下查找大于100MB的文件,+表示大于,-表示小于,数字前不加符号表示等于,这个数字的单位是数据块,等于0.5K;

-user 后加用户名,可以查找所有者为该用户的文件,-uid可以用账号id查找该账号的文件,-gid查找对应组ID的文件。

搜寻系统中不属于任何人的文件:find / -nouser,当一个用户创建了一些文件,后来该用户被删除后系统就会残留一部分这样的文件。-nogroup可以找无群组的文件。

-amin表示查找访问时间(access)、-cmin表示查找文件属性修改时间(change)、-mmin表示查找文件内容修改时间(modify),如find /etc -cmin -5表示查找etc目录下修改属性时间在5分钟以内的文件,时间前也可以有加号或者减号。

-a提供并列筛选,-o表示满足一个筛选条件即可,这两个都是放在筛选条件之间的,如find /etc -size +163840 -a -size -204800表示查找大小在两者之间的文件;

-type可以根据文件类型查找,文件类型有f、d、l等;

-inum可以根据inode查找,可以用这个命令查找一个文件的所有硬链接文件。

-perm后接数字可以查找权限为该数字的文件,此时数字前加-代表查找任何权限囊括该数字对应权限的文件(如搜-rwxr--r--,当文件为-rwxr-xr-x也会被搜出来),数字前加/表示当任何一部分数字权限能对的上时,就会被找出(如搜-rwxr-xr-x,当文件为-rw-------也会被搜出)

-exec或者-ok可以对查找结果执行命令,如:

find . -name *init* -exec ls -l {} /;

表示对当前目录下查找复合要求的文件名,然后显示结果文件详细信息,后三个字符是固定的。-ok和-exec区别在于-ok会进一步询问。

find . -inum 31531 -exec rm {} /;

表示对查找结果进行删除。

上述执行格式中大括号代表find命令执行的结果,而/;或;代表分号,是命令的终止符,而大括号到-exec这段就是find后要执行的命令。

查看24小时内更新过的文件:find / mtime 0

找到比后一个文件更新的文件:find /etc -newer /etc/passwd

文件搜索命令locate

locate也是文件搜索命令,后面直接加文件名,表示查找含有该名的文件,这个命令查找速度非常快,这是因为linux预先建立了一个数据库记录了文件信息,locate就是通过查找该库来寻找文件的,这个数据库在/var/lib/mlocate/mlocate.db。缺点是新建的文件没有被收录进这个数据库,此时用locate命令是查不到的,但是可以用updatedb来手动刷新资料库,但是如果把文件放在tmp(临时目录)下,即使刷新过该命令也无法找到。locate可以加-i选项,此时查找不区分大小写。

找到与passwd相关的文件,只列出5个:locate -l 5 passwd

查找文件内容grep

grep可以用来查找文件内容,如grep winner /etc/inittab表示查找文件中是否有winner字符串,并显示有该字符串的行。-i可以不区分大小写查找。-v可以过滤掉某些结果,如:

grep -v ^# /etc/inittab

表示过滤掉以#开头的行,只显示其他行。

取出所有没有root的行:last | grep -v 'root'

grep命令其实是分析每一行,将符合要求的行取出。

文件对比命令

比较两个目录内的文件差异:diff -r 目录1 目录2

diff和cmp命令是对比两个文件之间的差异的,前者以行为单位对比,后者以字节为单位对比。

patch命令可以配合diff使用,diff命令制作旧文档到新文档的补丁,patch命令可以给旧文档升级到新文档,也可以恢复原来的文档版本。

标签:locate,文件,命令,find,etc,查找,搜索,对比
来源: https://www.cnblogs.com/shizhuoping/p/12535590.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有