未加星标

Linux基础知识――文件查找

字体大小 | |
[系统(linux) 所属分类 系统(linux) | 发布者 店小二04 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏

linux系统的核心思想之一就是一切皆文件,可想而知你要靠记忆去查找一个文件该是多么费劲;今天我们介绍几个文件查找命令:whereis,locate,find

whereis

locate the binary, source, and manual page files for a command
【SYNOPSIS】
whereis [-bmsu] [-BMS directory... -f] filename...
【OPTIONS】
-b 仅查找二进制文件
-m 仅查找man章节
-s 仅查找源文件

locate

find file by name locate命令与其他查找命令不同在于,它是靠查询一张数据表的内容来查找文件位置:/var/lib/mlocate/mlocate.db而这张表是定时自动更新其内容的,新加的文件或者目录是无法立即查询得到的,通过命令【updatedb】命令来即时更新其数据表来获取最新的文件保存信息
【SYNOPSIS】
locate [OPTION]... PATTERN...
【OPTION】
-b, --basename 仅查找基名的路径
-c,--count 仅显示查找到的数量
-d,--database DBPATH 更改mlocate.db保存路径
-i,--ignore 忽略大小写
-r,--regexp 支持基本正则表达式
--regex 支持扩展正则表达式
-l,--limit -n LIMIT 指定显示数量
-P,--nofollow 不显示链接指向符号检测文件是否存在
-L,--follow 与-P相反

find

search for files in a directory hierarchy
【SYNOPSIS】
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
【OPTIONS】
-P Never follow symbolic links(defualt)
-L Follow symbolic links
-H Do not follow symbolic links, except while processing the command line arguments.
-nouser 无属主
-nogroup 无属组
-atime 访问时间查找(天数)
+n n时间之前的文件
n n时间24小时之内访问的时间(闭合区间)
-n n时间到现在的时间
-mtime 修改时间查找(天数)
-ctime 改变时间查找(天数)
-amin (分钟)
-mmin (分钟)
-cmin (分钟)
-user 按属主查找
-group 按属主查找
-perm 按权限查找
mode 权限精确查找
-mode 每一类用户权限中的每一位权限符合条件即可
/mode 任意一类用户权限中的任意一位权限条件满足即可
-size 按照文件大小查找
+n 大于n的
n 大于等于n,小于n+1
-n 小于n
【EXPRESSION】
-print 标准输出,默认
-ls 将查找到的文件“ls -l”,不支持alias别名命令
-delete 将查找到的文件删除
-fls /PATH/TO/SOMEFILE 将查找到的文件的长格式保存至路径
-ok COMMAND {} \; 对查找到的内容执行COMMAND,并交互确认
-exec COMMAND {} \; 对查找到的内容进行COMMAND
find | xargs find文件后执行COMMAND时,不支持长格式参数,如果参数过长会出错,无法执行,则使用此管道命令执行

1、显示当前系统上root、fedora、user1用户的默认shell

grep 'root' /etc/passwd |cut -d: -f7
grep 'fedora' /etc/passwd |cut -d: -f7
grep 'user1' /etc/passwd |cut -d: -f7

2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一个小括号的行

grep "\<[[:alnum:]]*\>[(][)]" /etc/rc.d/init.d/functions 3、使用echo命令输出一个绝对路径,使用grep取出其基名/取出其路径名 echo PATH |grep -o "[^/]+[[:alnum:]] [[:punct:]] $" echo /var/spool/mail/root|grep -o "(/).*\1" 4、找出ifconfig命令结果中的1-255之间的数字 ifconfig |grep -E "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"

5、写一个模式,能匹配合理的IP地址

ifconfig |grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"

6、写一个模式,能匹配出所有的邮件地址

grep -o "[[:alnum:]]\+[[:punct:]]*[[:alnum:]]\+\>@[^[:space:]]\+[[:alnum:]]*\>" /var/spool/mail/root

7、查找/var目录下属主为root,且属组为mail的所有文件或者目录

find /var/ -user root -a -group mail -ls

8、查找当前系统上没有属主或者属组的文件/查找当前系统上没有属主或者属组,且最近三天内曾被访问过的文件或者目录

find / -nouser -o -nogroup -a -atime -3

9、查找/etc/目录下所有用户都有写权限的文件

find /etc/ -perm -222 -exec ls -dl {} \;

10、查找/etc目录下大于1M,且类型为普通文件的所有文件

find /etc -type f -a -size +1M -exec ls -dl {} \;

11、查找/etc/init.d/目录下,所有用户都有执行权限,且其他用户有写权限的文件

find /etc/init.d/ -perm -111 -a -perm -002 -exec ls -l {} \;

12、查找/usr目录下不属于root、bin或者hadoop的文件

find /tmp/ ! -user root -a ! -user bin -a ! -user hadoop -exec ls -l {} \;

13、查找/etc目录下至少有一类用户没有写权限的文件

find /etc/ ! -perm -222 -exec ls -l {} \;

14、查找/etc目录下最近一周内其内容被修改过,且不属于root或者hadoop的文件

find /etc/ -mtime -7 -a ! -user root -a ! -user hadoop -exec ls -l {} \;

本文系统(linux)相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux操作系统

主题: LinuxTIOPT数据行权删除
分页:12
转载请注明
本文标题:Linux基础知识――文件查找
本站链接:http://www.codesec.net/view/481474.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(linux) | 评论(0) | 阅读(36)