码迷,mamicode.com
首页 > 系统相关 > 详细

2016-3-29 linux基础学习——find命令

时间:2016-05-15 19:55:11      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:character   区分大小写   linux   表达式   file   

find  [查找位置]  [查找标准]  [处理动作]
    查找路径:默认当前目录
    查找标准:默认为指定路径下的所有文件
    处理运作:默认为显示
    
    匹配标准
        -name ‘FILENAME‘ :对文件名
            文件名通配:
            *:任意长度的任意字符
            ?
            []
        -iname ‘FILENAME‘:文件名匹配时不区分大小写
        -regex PATTERN:基于正则表达式进行文件名通配
        -uid UID:根据UID查找
        -gid GID:根据GID查找
        -nouser:查找没有属主的文件
        -nogroup:查找没有属组的文件
    -type
       f:普通文件(f)
       d:目录文件
       b:块设备(block)
       c:字符设备文件(character)
       l:符号设备文件(symbolic link file)
       p:命令管道文件(pipe)
       s:套接字文件(socket) 

  -size [+|-]
        #k:[加|减]精确到10k
        #M
        #G
组合条件
    -a 与
    -o 或
    -not 非

/tmp目录,不是目录,并且还不能套接字类型的文件
    find ./ -not \ -user user1 -o -type d
    find ./ -not \( -user user1 -a -type d)
/tmp/test目录下,属主不是user1,也不是user2的文件
    find ./ -not \ -user user1 -a -user user2
    find ./ -not \( -user user1 -o -user user2)
    
修改时间
    -mtime
    -ctime
    -atime
        [+|-]#(数字)
        +5:5天之前
        -5:5天之内访问过
        5:刚好过去5天曾经访问过
    
    -mmin
    -cmin
    -amin
        [+|-]#
        +5:5分钟之前
        -5:5分钟之内访问过
        5:刚好过去5分钟曾经访问过
    
根据权限查找
    -perm MODE精确查找
          /MODE:只需要一个文件匹配即可显示
          -MODE:文件权限能完全包含此MODE时才能显示

技术分享

运作
    -printf:显示
    -ls :类似ls -l 的显示每一个文件的详细信息
    -ok COMMAND {}\;找到文件的基础上对文件进一步操作(每一步操作都需要用户确认)
    -exec COMMAND {}\;对文件进一步操作(不需要确认)
        一定要\;结尾,否则语法错误
        {}:引用文件 文件名称占位符
    技术分享    
    eg1.找到目录文件,将其属组的执行权限去掉,将其他用户的读权限去掉
    eg2.找到属组有写权限的文件a,并更名为a.new
    

技术分享

技术分享

技术分享

课练1.查找/var目录下属主为root并且属组为gdm的所有文件
课练2.查找/usr目录下不属于root,bin,或Andy的文件
     find /usr -not \( -user root -o -user bin -o -user Andy \)
课练3.查找/etc目录下最近一周内内容修改过且不属于root及Andy用户的文件
    find /etc -ctime -7 -a -not  -user root -a -user Andy
课练4.查找当前系统上没有属主或属组且最近1天内曾访问过的文件,并将其属主属组改为root
     find ./ \( -nouser -o -nogroup \) -a -ctime -1 -exec -chown root:root {} \;
课练5.查找/etc目录下大雨1M的文件,并将其文件名写入/tmp/etc.largerfiles文件中
    find /etc -size +1M -exec {} >> /tmp/etc.largefiles \;
    find /etc -size +1M | xargs echo > /tmp/etc.largefiles
课练6.查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息
    find /etc -not -perm /222 -exec -ls {} \;
   

技术分享

技术分享

技术分享

技术分享


特殊权限
passwd:s
SUID:运行某程序时,相应进程的属主是程序文件的自身,而不是启动者
    chmod u+s FILE
    chmod u-s FILE
        如果FILE本身原来就有执行权限,则SUID显示为s,否则显示S
SGID:运行某程序时,相应进程的属组是程序文件的自身,而不是启动者所属基本组
    chmod g+s FILE
    chmod g-s FILE
        
Sticky:在一个公共目录,每个都可以创建文件,删除自己的文件,但不能删除别人的文件    
    chmod o-t DIR
    chmod o+t DIR
    
四位数权限,第一位是特殊权限
Sticky SGID SUID    
0 000 无特殊权限
1 001 只有Sticky
2 010 只有SGID
3 011 有SGID和Sticky
4 100 只有SUID
5 101 有SUID和SGID
6 110 有SUID和Sticky
7 111 三个特殊权限都有    
    eg:5755 /backup有SUID和Sticky

技术分享

本文出自 “11160930” 博客,请务必保留此出处http://11170930.blog.51cto.com/11160930/1773668

2016-3-29 linux基础学习——find命令

标签:character   区分大小写   linux   表达式   file   

原文地址:http://11170930.blog.51cto.com/11160930/1773668

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!