Linux基础知识——文件查找

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 -E "^(root|fedora|user1)" /etc/passwd |cut -d: -f1,7

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 {} \;

原创文章,作者:396064847,如若转载,请注明出处:http://www.178linux.com/50652

(0)
396064847396064847
上一篇 2016-10-11
下一篇 2016-10-12

相关推荐

  • linux终端变量设置,文件系统,man使用说明,文件类型

    一、定义终端提示符的变量 export PS1=’\e[32m[\e[33m\u\e[31m@\e[35m\h\e[36m\t\e[34m\#\e[31m\s\e[37m\W\e[32m]\$ ‘  `]# export 是个命令      PS1指终端提示符变量    &n…

    Linux干货 2013-06-16
  • linxu通配符

    通配符 globbing globbing:文件名通配(整体文件名匹配,而非部分) 匹配模式:元字符 *:匹配任意长度的任意字符 ab*:ab开头的单词 *ab*:包含ab的单词 *ab:ab结尾的单词 *a*b*:包含a、b的单词 ?:匹配任意单个字符 ab?:ab开头的三个字符的单词 ??ab:ab结尾四个字符的单词 a?b:a开头、b结尾三个字符的单词…

    Linux干货 2018-03-11
  • 第一周:Linux基础及哲学思想

    1.现代计算机的组成及功能    现代计算机由运算器、控制器、存储器、输入和输出设备5大部分组成。分别担当着计算机的计算,控制,存储,输入和输出等功能. 2.Linux的发行版及其之间的联系与区别     Linux发行版主要分支分为三大系列: Slackware、debian 、redhat  &…

    Linux干货 2016-06-23
  • 也许你根本不会用百度搜索

    搜索引擎可以帮助使用者在Internet上找到特定的信息,但它们同时也会返回大量无关的信息。但是如果多使用一些技巧,你将发现搜索引擎会花尽可能少的时间找到你需要的确切信息。 1.简单查询 这个就是最简单便捷的使用方式,其实也是我们大多数人平时使用百度或者其他搜索引擎的方式。比如你想查培训学校,那么你的第一反应肯定就是在百度里输入【挖掘机】【挖掘机学校】【蓝翔…

    2015-03-02
  • Sed文本文件工具的使用详解

    Sed文本文件工具的使用详解 一、概述 sed 工具实际上就是一个非交互式的编辑器,主要是为了处理文本而生的,我们知道处理文本的三剑客是 grep sed awk 我们之前学习过 grep 文本过滤工具,它的主要作用是为了过滤文本,而sed 工具也是过滤文本,只不过sed工具针对的是文件中的每一行,而且sed工具更加强大,下面还具体说明一下sed 工具的原理…

    Linux干货 2016-10-09
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限;          [root@yangjifeng~]# cp -a /etc/skel /home/tuser1 [root@yangjife…

    Linux干货 2017-08-28

评论列表(1条)

  • 马哥教育
    马哥教育 2016-10-20 19:30

    这几个工具用好了,可以大幅提高文件查找效率,这篇文章整理的非常不错。