如何查找文件/文件类型/属性

 我来答
北京瑞星信息技术股份有限公司
2016-11-24
北京瑞星信息技术股份有限公司
瑞星公司主营业务为信息安全整体解决方案的研发、销售及相关增值服务。公司自成立以来一直专注于信息安全领域,以优质的产品和专业的“安全+”服务,向政府、企业及个人提供各类安全服务,帮助所有用户。
向TA提问
展开全部
你应该咨询的是Linux系统下查找文件、文件类型、属性的方法吧:
-----查找文件
1、find名称查找文件格式:$ find [ PATH ] [ option ] [ action]
常用option如下:
-name fileName
-size [+-]SIZE #+表示大于 -表示小于
-type TYPE #TYPE为f/d/l/s/b/c
-perm mode #搜寻文档权限等于mode的文档,如$find ./ -perm 0755
-perm -mode #搜寻全部囊括mode权限的文档,如$find ./ -perm -0744 则会列出权限为4755、0744的所有文件,因为-rwsr-xr-x囊括了-rwxr--r--的属性,即拥有4755权限的文件一定拥有0744的权限
-perm +mode #搜寻包含任一mode权限的文档,例如$find ./ -perm +755 时,属性为-rw- --- ---的文件也会被列出来,因为他有rw的属性

与时间有关的option有-mtime/ctime/atime,这三者的区别请参考本博客的另一篇文章<atime/ctime/mtime的区别>
-mtime n n天之前的一天内被修改过的文件
-mtime +n n天之前(不含n)被修改过的文件
-mtime -n n天之内(含n)被修改过的文件

例如:
$find ./ -mtime 4
$find ./ -mtime -4
$find ./ -mtime +4
例2:
将过去24小时内修改过的文件列出
$find ./ -mtime 0 #0 表示现在
例3:$find / -perm +7000 -exec ls -l {} \;
说明:
{} 代表有find找到的内容
-exec一直到\;是关键词,代表find额外的动作的开始到结束,在这中间的就是find的额外动作
因为分号在bash环境下有特殊意义,这里的\主要是为了跳脱分号的特殊意义
例4:$find ./ -name '*http*' #find命令中可以使用通配符来寻档案名
2.locate命令查找文件格式:$ locate [-ir] Keyword
例1:找出所有文件名含有passwd的文档
$ locate passwd
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/news/passwd.nntp

3、whereis命令格式$ whereis [-bmsu] 文档名或目录名
-b 只查找binary格式的文档
-m 只查找在说明文件manual路径下的文件
-s 只找source来源档案
-u 搜索不在上述三个项目中的其他文件
区别:
find命令搜寻命令花的时间长,因为他直接在硬盘上搜索。
locate命令搜索时以数据库文档(/var/lib/mlocate/)中搜索得到的,不用直接去硬盘取数据,所以较快。
但是数据库的建立默认是在每天执行一次(即每天更新一次数据库),所以当你新建立起来档案后,在数据库更新前使用locate会找不到文件。
解决办法:可以使用updatedb命令更新数据库(这个命令一般会执行数分钟),然后再使用locate命令查询。
whereis命令也是根据数据库文档得到文件
根据上面的区别可知:一般我们先用locate 或whereis命令查找文件,在找不到的情况下才用find查找
-----查看文件的类型:file命令
-----查看文件的属性:lsattr命令
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式